target/loongarch: Implement xvshuf xvperm{i} xvshuf4i

This patch includes:
- XVSHUF.{B/H/W/D};
- XVPERM.W;
- XVSHUF4i.{B/H/W/D};
- XVPERMI.{W/D/Q};
- XVEXTRINS.{B/H/W/D}.

Signed-off-by: Song Gao <gaosong@loongson.cn>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230914022645.1151356-55-gaosong@loongson.cn>
This commit is contained in:
Song Gao 2023-09-14 10:26:42 +08:00
parent ad2921482c
commit 513e88a24d
No known key found for this signature in database
GPG key ID: 40A2FFF239263EDF
5 changed files with 175 additions and 46 deletions

View file

@ -2574,3 +2574,24 @@ INSN_LASX(xvilvh_b, vvv)
INSN_LASX(xvilvh_h, vvv)
INSN_LASX(xvilvh_w, vvv)
INSN_LASX(xvilvh_d, vvv)
INSN_LASX(xvshuf_b, vvvv)
INSN_LASX(xvshuf_h, vvv)
INSN_LASX(xvshuf_w, vvv)
INSN_LASX(xvshuf_d, vvv)
INSN_LASX(xvperm_w, vvv)
INSN_LASX(xvshuf4i_b, vv_i)
INSN_LASX(xvshuf4i_h, vv_i)
INSN_LASX(xvshuf4i_w, vv_i)
INSN_LASX(xvshuf4i_d, vv_i)
INSN_LASX(xvpermi_w, vv_i)
INSN_LASX(xvpermi_d, vv_i)
INSN_LASX(xvpermi_q, vv_i)
INSN_LASX(xvextrins_d, vv_i)
INSN_LASX(xvextrins_w, vv_i)
INSN_LASX(xvextrins_h, vv_i)
INSN_LASX(xvextrins_b, vv_i)