[vectorIntrinsics] RFR: 8266720: Wrong implementation in LibraryCallKit::inline_vector_shuffle_iota [v3]

Xiaohong Gong xgong at openjdk.java.net
Thu Jun 3 03:16:54 UTC 2021


On Wed, 2 Jun 2021 08:05:07 GMT, Wang Huang <whuang at openjdk.org> wrote:

>> Because JDK-8266317 has not been merged into jdk/jdk. So I fix this bug here.
>> * This comparsion should be a unsigned cmp
>> *  `x86` is not wrong because `x86` does not have 1024-bits vl here. 
>>   ```c++
>> 
>>     ConINode* pred_node = (ConINode*)gvn().makecon(TypeInt::make(BoolTest::ge)); // should BoolTest::ugt
>>     Node * lane_cnt  = gvn().makecon(TypeInt::make(num_elem));
>>     Node * bcast_lane_cnt = gvn().transform(VectorNode::scalar2vector(lane_cnt, num_elem, type_bt));
>>     // should BoolTest::ugt
>>     Node* mask = gvn().transform(new VectorMaskCmpNode(BoolTest::ge, bcast_lane_cnt, res, pred_node, vt));
>
> Wang Huang has updated the pull request incrementally with one additional commit since the last revision:
> 
>   only fix IR

src/hotspot/share/opto/vectorIntrinsics.cpp line 467:

> 465:     } else {
> 466:       // Currently it works well for vector_length <= 1024-bits.
> 467:       // for vector_length > 1024, we don't support now

Does it need any vector length check or block for vector length >1024?

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

PR: https://git.openjdk.java.net/panama-vector/pull/81


More information about the panama-dev mailing list