[vectorIntrinsics] RFR: 8265321: Add Rearrange nodes implementation for Arm SVE [v2]

Ningsheng Jian njian at openjdk.java.net
Thu Apr 22 09:52:38 UTC 2021


On Thu, 22 Apr 2021 06:25:51 GMT, Wang Huang <whuang at openjdk.org> wrote:

>> * Add Rearrange nodes implementation for Arm SVE, like rearrangeB/I/S/L
>> * add `sve_tbl` , which reads each element of the second source (index) vector and uses its value to select an indexed element from the first source (table) vector, and places the indexed table element in the destination vector element corresponding to the index vector element. If an index value is greater than or equal to the number of vector elements then it places zero in the corresponding destination vector element.[1]
>> 
>> [1]  https://developer.arm.com/documentation/ddi0596/2020-12/SVE-Instructions/TBL--Programmable-table-lookup-in-single-vector-table-?lang=en
>
> Wang Huang has updated the pull request incrementally with one additional commit since the last revision:
> 
>   fix some bugs

Thanks for the work! Overall looks good to me. Just some nits.

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

> 2421:       default:
> 2422:         break;
> 2423:     }

I would prefer put this inside op_sve_supported.

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

> 4058:   match(Set dst (VectorRearrange src shuffle));
> 4059:   ins_cost(SVE_COST);
> 4060:   format %{ "sve_tbl $dst, D, $src, $shuffle\t# vector rearrange (L)" %}

I still think that it make no sense to separate these rules. But anyway, I can do a cleanup later. FYI: Xiaohong and our Intel friends are working hard trying not to increase the instruction selection patterns on masking support design: http://openjdk.java.net/jeps/8261663.

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

Marked as reviewed by njian (Committer).

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


More information about the panama-dev mailing list