target/loongarch: Implement xvaddw/xvsubw

This patch includes:
- XVADDW{EV/OD}.{H.B/W.H/D.W/Q.D}[U];
- XVSUBW{EV/OD}.{H.B/W.H/D.W/Q.D}[U];
- XVADDW{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-21-gaosong@loongson.cn>
This commit is contained in:
Song Gao 2023-09-14 10:26:08 +08:00
parent 64cf6b99d7
commit 85995f076a
No known key found for this signature in database
GPG key ID: 40A2FFF239263EDF
4 changed files with 215 additions and 34 deletions

View file

@ -1782,6 +1782,49 @@ INSN_LASX(xvhsubw_wu_hu, vvv)
INSN_LASX(xvhsubw_du_wu, vvv)
INSN_LASX(xvhsubw_qu_du, vvv)
INSN_LASX(xvaddwev_h_b, vvv)
INSN_LASX(xvaddwev_w_h, vvv)
INSN_LASX(xvaddwev_d_w, vvv)
INSN_LASX(xvaddwev_q_d, vvv)
INSN_LASX(xvaddwod_h_b, vvv)
INSN_LASX(xvaddwod_w_h, vvv)
INSN_LASX(xvaddwod_d_w, vvv)
INSN_LASX(xvaddwod_q_d, vvv)
INSN_LASX(xvsubwev_h_b, vvv)
INSN_LASX(xvsubwev_w_h, vvv)
INSN_LASX(xvsubwev_d_w, vvv)
INSN_LASX(xvsubwev_q_d, vvv)
INSN_LASX(xvsubwod_h_b, vvv)
INSN_LASX(xvsubwod_w_h, vvv)
INSN_LASX(xvsubwod_d_w, vvv)
INSN_LASX(xvsubwod_q_d, vvv)
INSN_LASX(xvaddwev_h_bu, vvv)
INSN_LASX(xvaddwev_w_hu, vvv)
INSN_LASX(xvaddwev_d_wu, vvv)
INSN_LASX(xvaddwev_q_du, vvv)
INSN_LASX(xvaddwod_h_bu, vvv)
INSN_LASX(xvaddwod_w_hu, vvv)
INSN_LASX(xvaddwod_d_wu, vvv)
INSN_LASX(xvaddwod_q_du, vvv)
INSN_LASX(xvsubwev_h_bu, vvv)
INSN_LASX(xvsubwev_w_hu, vvv)
INSN_LASX(xvsubwev_d_wu, vvv)
INSN_LASX(xvsubwev_q_du, vvv)
INSN_LASX(xvsubwod_h_bu, vvv)
INSN_LASX(xvsubwod_w_hu, vvv)
INSN_LASX(xvsubwod_d_wu, vvv)
INSN_LASX(xvsubwod_q_du, vvv)
INSN_LASX(xvaddwev_h_bu_b, vvv)
INSN_LASX(xvaddwev_w_hu_h, vvv)
INSN_LASX(xvaddwev_d_wu_w, vvv)
INSN_LASX(xvaddwev_q_du_d, vvv)
INSN_LASX(xvaddwod_h_bu_b, vvv)
INSN_LASX(xvaddwod_w_hu_h, vvv)
INSN_LASX(xvaddwod_d_wu_w, vvv)
INSN_LASX(xvaddwod_q_du_d, vvv)
INSN_LASX(xvreplgr2vr_b, vr)
INSN_LASX(xvreplgr2vr_h, vr)
INSN_LASX(xvreplgr2vr_w, vr)