target/loongarch: Implement xvmul/xvmuh/xvmulw{ev/od}

This patch includes:
- XVMUL.{B/H/W/D};
- XVMUH.{B/H/W/D}[U];
- XVMULW{EV/OD}.{H.B/W.H/D.W/Q.D}[U];
- XVMULW{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-26-gaosong@loongson.cn>
This commit is contained in:
Song Gao 2023-09-14 10:26:13 +08:00
parent c09360faad
commit 342dc1cfcb
No known key found for this signature in database
GPG key ID: 40A2FFF239263EDF
4 changed files with 189 additions and 55 deletions

View file

@ -1473,6 +1473,44 @@ xvmini_hu 0111 01101001 01101 ..... ..... ..... @vv_ui5
xvmini_wu 0111 01101001 01110 ..... ..... ..... @vv_ui5
xvmini_du 0111 01101001 01111 ..... ..... ..... @vv_ui5
xvmul_b 0111 01001000 01000 ..... ..... ..... @vvv
xvmul_h 0111 01001000 01001 ..... ..... ..... @vvv
xvmul_w 0111 01001000 01010 ..... ..... ..... @vvv
xvmul_d 0111 01001000 01011 ..... ..... ..... @vvv
xvmuh_b 0111 01001000 01100 ..... ..... ..... @vvv
xvmuh_h 0111 01001000 01101 ..... ..... ..... @vvv
xvmuh_w 0111 01001000 01110 ..... ..... ..... @vvv
xvmuh_d 0111 01001000 01111 ..... ..... ..... @vvv
xvmuh_bu 0111 01001000 10000 ..... ..... ..... @vvv
xvmuh_hu 0111 01001000 10001 ..... ..... ..... @vvv
xvmuh_wu 0111 01001000 10010 ..... ..... ..... @vvv
xvmuh_du 0111 01001000 10011 ..... ..... ..... @vvv
xvmulwev_h_b 0111 01001001 00000 ..... ..... ..... @vvv
xvmulwev_w_h 0111 01001001 00001 ..... ..... ..... @vvv
xvmulwev_d_w 0111 01001001 00010 ..... ..... ..... @vvv
xvmulwev_q_d 0111 01001001 00011 ..... ..... ..... @vvv
xvmulwod_h_b 0111 01001001 00100 ..... ..... ..... @vvv
xvmulwod_w_h 0111 01001001 00101 ..... ..... ..... @vvv
xvmulwod_d_w 0111 01001001 00110 ..... ..... ..... @vvv
xvmulwod_q_d 0111 01001001 00111 ..... ..... ..... @vvv
xvmulwev_h_bu 0111 01001001 10000 ..... ..... ..... @vvv
xvmulwev_w_hu 0111 01001001 10001 ..... ..... ..... @vvv
xvmulwev_d_wu 0111 01001001 10010 ..... ..... ..... @vvv
xvmulwev_q_du 0111 01001001 10011 ..... ..... ..... @vvv
xvmulwod_h_bu 0111 01001001 10100 ..... ..... ..... @vvv
xvmulwod_w_hu 0111 01001001 10101 ..... ..... ..... @vvv
xvmulwod_d_wu 0111 01001001 10110 ..... ..... ..... @vvv
xvmulwod_q_du 0111 01001001 10111 ..... ..... ..... @vvv
xvmulwev_h_bu_b 0111 01001010 00000 ..... ..... ..... @vvv
xvmulwev_w_hu_h 0111 01001010 00001 ..... ..... ..... @vvv
xvmulwev_d_wu_w 0111 01001010 00010 ..... ..... ..... @vvv
xvmulwev_q_du_d 0111 01001010 00011 ..... ..... ..... @vvv
xvmulwod_h_bu_b 0111 01001010 00100 ..... ..... ..... @vvv
xvmulwod_w_hu_h 0111 01001010 00101 ..... ..... ..... @vvv
xvmulwod_d_wu_w 0111 01001010 00110 ..... ..... ..... @vvv
xvmulwod_q_du_d 0111 01001010 00111 ..... ..... ..... @vvv
xvreplgr2vr_b 0111 01101001 11110 00000 ..... ..... @vr
xvreplgr2vr_h 0111 01101001 11110 00001 ..... ..... @vr
xvreplgr2vr_w 0111 01101001 11110 00010 ..... ..... @vr