[vectorIntrinsics] RFR: 8264469: Add Insert float nodes implementation for Arm SVE
Xiaohong Gong
xgong at openjdk.java.net
Wed Mar 31 09:06:31 UTC 2021
On Wed, 31 Mar 2021 02:50:03 GMT, Wang Huang <whuang at openjdk.org> wrote:
> Add Insert float nodes implementation for Arm SVE, like insertD & insertF
src/hotspot/cpu/aarch64/aarch64_sve.ad line 3314:
> 3312: n->bottom_type()->is_vect()->element_basic_type() == T_FLOAT);
> 3313: match(Set dst (VectorInsert (Binary src val) idx));
> 3314: effect(TEMP tmp, TEMP tmp2, TEMP pTmp, KILL cr);
Use `tmp1, tmp2` instead of `tmp, tmp2` ?
src/hotspot/cpu/aarch64/aarch64_sve.ad line 3326:
> 3324: __ sve_index(as_FloatRegister($tmp$$reg), __ S, 0, 1);
> 3325: __ sve_dup(as_FloatRegister($tmp2$$reg), __ S, (int)($idx$$constant));
> 3326: __ sve_cmpeq(as_PRegister($pTmp$$reg), size, ptrue,
SVE support immedicate CMP: `CMPEQ <Pd>.<T>, <Pg>/Z, <Zn>.<T>, #<imm>`. Could you please use the imm version here? We can save one `dup` instruction here.
-------------
PR: https://git.openjdk.java.net/panama-vector/pull/56
More information about the panama-dev
mailing list