[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