target/loongarch: Implement xvmadd/xvmsub/xvmaddw{ev/od}

This patch includes:
- XVMADD.{B/H/W/D};
- XVMSUB.{B/H/W/D};
- XVMADDW{EV/OD}.{H.B/W.H/D.W/Q.D}[U];
- XVMADDW{EV/OD}.{H.BU.B/W.HU.H/D.WU.W/Q.DU.D}.

Signed-off-by: Song Gao <gaosong@loongson.cn>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230914022645.1151356-27-gaosong@loongson.cn>
This commit is contained in:
Song Gao 2023-09-14 10:26:14 +08:00
parent 342dc1cfcb
commit 3f450c17d0
No known key found for this signature in database
GPG key ID: 40A2FFF239263EDF
4 changed files with 210 additions and 87 deletions

View file

@ -1928,6 +1928,40 @@ INSN_LASX(xvmulwod_w_hu_h, vvv)
INSN_LASX(xvmulwod_d_wu_w, vvv)
INSN_LASX(xvmulwod_q_du_d, vvv)
INSN_LASX(xvmadd_b, vvv)
INSN_LASX(xvmadd_h, vvv)
INSN_LASX(xvmadd_w, vvv)
INSN_LASX(xvmadd_d, vvv)
INSN_LASX(xvmsub_b, vvv)
INSN_LASX(xvmsub_h, vvv)
INSN_LASX(xvmsub_w, vvv)
INSN_LASX(xvmsub_d, vvv)
INSN_LASX(xvmaddwev_h_b, vvv)
INSN_LASX(xvmaddwev_w_h, vvv)
INSN_LASX(xvmaddwev_d_w, vvv)
INSN_LASX(xvmaddwev_q_d, vvv)
INSN_LASX(xvmaddwod_h_b, vvv)
INSN_LASX(xvmaddwod_w_h, vvv)
INSN_LASX(xvmaddwod_d_w, vvv)
INSN_LASX(xvmaddwod_q_d, vvv)
INSN_LASX(xvmaddwev_h_bu, vvv)
INSN_LASX(xvmaddwev_w_hu, vvv)
INSN_LASX(xvmaddwev_d_wu, vvv)
INSN_LASX(xvmaddwev_q_du, vvv)
INSN_LASX(xvmaddwod_h_bu, vvv)
INSN_LASX(xvmaddwod_w_hu, vvv)
INSN_LASX(xvmaddwod_d_wu, vvv)
INSN_LASX(xvmaddwod_q_du, vvv)
INSN_LASX(xvmaddwev_h_bu_b, vvv)
INSN_LASX(xvmaddwev_w_hu_h, vvv)
INSN_LASX(xvmaddwev_d_wu_w, vvv)
INSN_LASX(xvmaddwev_q_du_d, vvv)
INSN_LASX(xvmaddwod_h_bu_b, vvv)
INSN_LASX(xvmaddwod_w_hu_h, vvv)
INSN_LASX(xvmaddwod_d_wu_w, vvv)
INSN_LASX(xvmaddwod_q_du_d, vvv)
INSN_LASX(xvreplgr2vr_b, vr)
INSN_LASX(xvreplgr2vr_h, vr)
INSN_LASX(xvreplgr2vr_w, vr)