[vectorIntrinsics] RFR: 8258072: Add Reinterpret nodes implementation for Arm SVE [v2]

Xiaohong Gong xgong at openjdk.java.net
Wed Dec 16 08:18:06 UTC 2020


On Wed, 16 Dec 2020 08:07:15 GMT, Wang Huang <whuang at openjdk.org> wrote:

>> Add reinterpret nodes implementation for Arm SVE. We also adjust the implementation of Matcher::min_vector_size in the same patch.
>
> Wang Huang has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR.

src/hotspot/cpu/aarch64/aarch64.ad line 2501:

> 2499:       return MaxVectorSize / 8;
> 2500:     }
> 2501:     // Limit the vector size to 8 bytes

Is the min vector size is limited to 32 bytes while not 8?

src/hotspot/cpu/aarch64/aarch64_sve.ad line 252:

> 250: // All SVE instructions
> 251: 
> 252: // vector load/store/reinterpret

Can you please add a separate comment for "reinterpret" before the related rules?

src/hotspot/cpu/aarch64/aarch64_sve.ad line 344:

> 342: instruct reinterpret(vReg dst) %{
> 343:   predicate(UseSVE > 0 && n->as_Vector()->length_in_bytes() >= 16 &&
> 344:             n->in(1)->bottom_type()->is_vect()->length_in_bytes() >= 16 &&

This check in line-344 is redundant as the pre and subsequent check can guarantee this.

src/hotspot/cpu/aarch64/aarch64_sve.ad line 342:

> 340:   ins_pipe(pipe_slow);
> 341: %}
> 342: instruct reinterpret(vReg dst) %{

Could you please try to add one more line between these different rules?

src/hotspot/cpu/aarch64/aarch64.ad line 2505:

> 2503:     if (bt == T_BYTE) {
> 2504:       // To support vector api shuffle/rearrange.
> 2505:       size = 8;

Any reason that the min vector size for `"shuffle/rearrange"` is `8` while not `32/64 = 4` ?

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

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


More information about the panama-dev mailing list