From: Richard Henderson <richard.henderson@linaro.org>
To: Song Gao <gaosong@loongson.cn>, qemu-devel@nongnu.org
Subject: Re: [RFC PATCH v2 16/44] target/loongarch: Implement vmadd/vmsub/vmaddw{ev/od}
Date: Tue, 28 Mar 2023 13:50:25 -0700 [thread overview]
Message-ID: <ced40fed-c3cd-e7d2-caa9-3b1bfdb60ae3@linaro.org> (raw)
In-Reply-To: <20230328030631.3117129-17-gaosong@loongson.cn>
On 3/27/23 20:06, Song Gao wrote:
> +static void gen_vmadd(unsigned vece, TCGv_vec t, TCGv_vec a, TCGv_vec b)
> +{
> + TCGv_vec t1;
> +
> + t1 = tcg_temp_new_vec_matching(t);
> + tcg_gen_mul_vec(vece, t1, a, b);
> + tcg_gen_add_vec(vece, t, t, t1);
> +}
> +
> +static void do_vmadd(unsigned vece, uint32_t vd_ofs, uint32_t vj_ofs,
> + uint32_t vk_ofs, uint32_t oprsz, uint32_t maxsz)
> +{
> + static const TCGOpcode vecop_list[] = {
> + INDEX_op_mul_vec, INDEX_op_add_vec, 0
> + };
> + static const GVecGen3 op[4] = {
> + {
> + .fniv = gen_vmadd,
> + .fno = gen_helper_vmadd_b,
> + .load_dest = true,
> + .opt_opc = vecop_list,
> + .vece = MO_8
> + },
> + {
> + .fniv = gen_vmadd,
> + .fno = gen_helper_vmadd_h,
> + .load_dest = true,
> + .opt_opc = vecop_list,
> + .vece = MO_16
> + },
> + {
> + .fniv = gen_vmadd,
> + .fno = gen_helper_vmadd_w,
> + .load_dest = true,
> + .opt_opc = vecop_list,
> + .vece = MO_32
> + },
> + {
> + .fniv = gen_vmadd,
> + .fno = gen_helper_vmadd_d,
> + .load_dest = true,
> + .opt_opc = vecop_list,
> + .vece = MO_64
> + },
> + };
> +
> + tcg_gen_gvec_3(vd_ofs, vj_ofs, vk_ofs, oprsz, maxsz, &op[vece]);
> +}
Integer expansion? Anyway,
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
next prev parent reply other threads:[~2023-03-28 20:51 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-28 3:05 [RFC PATCH v2 00/44] Add LoongArch LSX instructions Song Gao
2023-03-28 3:05 ` [RFC PATCH v2 01/44] target/loongarch: Add LSX data type VReg Song Gao
2023-03-28 19:56 ` Richard Henderson
2023-03-29 2:28 ` gaosong
2023-03-28 3:05 ` [RFC PATCH v2 02/44] target/loongarch: CPUCFG support LSX Song Gao
2023-03-28 19:33 ` Richard Henderson
2023-03-28 3:05 ` [RFC PATCH v2 03/44] target/loongarch: meson.build support build LSX Song Gao
2023-03-28 19:35 ` Richard Henderson
2023-03-28 3:05 ` [RFC PATCH v2 04/44] target/loongarch: Add CHECK_SXE maccro for check LSX enable Song Gao
2023-03-28 19:42 ` Richard Henderson
2023-03-29 2:28 ` gaosong
2023-03-28 3:05 ` [RFC PATCH v2 05/44] target/loongarch: Implement vadd/vsub Song Gao
2023-03-28 19:50 ` Richard Henderson
2023-03-28 19:59 ` Richard Henderson
2023-03-29 9:59 ` gaosong
2023-03-29 15:22 ` Richard Henderson
2023-03-28 3:05 ` [RFC PATCH v2 06/44] target/loongarch: Implement vaddi/vsubi Song Gao
2023-03-28 19:58 ` Richard Henderson
2023-03-28 3:05 ` [RFC PATCH v2 07/44] target/loongarch: Implement vneg Song Gao
2023-03-28 20:02 ` Richard Henderson
2023-03-28 3:05 ` [RFC PATCH v2 08/44] target/loongarch: Implement vsadd/vssub Song Gao
2023-03-28 20:03 ` Richard Henderson
2023-03-28 3:05 ` [RFC PATCH v2 09/44] target/loongarch: Implement vhaddw/vhsubw Song Gao
2023-03-28 20:17 ` Richard Henderson
2023-03-29 3:24 ` gaosong
2023-03-29 15:25 ` Richard Henderson
2023-03-28 3:05 ` [RFC PATCH v2 10/44] target/loongarch: Implement vaddw/vsubw Song Gao
2023-03-28 20:28 ` Richard Henderson
2023-03-28 3:05 ` [RFC PATCH v2 11/44] target/loongarch: Implement vavg/vavgr Song Gao
2023-03-28 20:31 ` Richard Henderson
2023-03-28 3:05 ` [RFC PATCH v2 12/44] target/loongarch: Implement vabsd Song Gao
2023-03-28 20:32 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 13/44] target/loongarch: Implement vadda Song Gao
2023-03-28 20:33 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 14/44] target/loongarch: Implement vmax/vmin Song Gao
2023-03-28 20:39 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 15/44] target/loongarch: Implement vmul/vmuh/vmulw{ev/od} Song Gao
2023-03-28 20:46 ` Richard Henderson
2023-04-06 12:09 ` gaosong
2023-04-06 16:52 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 16/44] target/loongarch: Implement vmadd/vmsub/vmaddw{ev/od} Song Gao
2023-03-28 20:50 ` Richard Henderson [this message]
2023-03-28 3:06 ` [RFC PATCH v2 17/44] target/loongarch: Implement vdiv/vmod Song Gao
2023-03-28 20:52 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 18/44] target/loongarch: Implement vsat Song Gao
2023-04-01 5:03 ` Richard Henderson
2023-04-03 12:55 ` gaosong
2023-04-03 20:13 ` Richard Henderson
2023-04-04 2:11 ` gaosong
2023-04-04 3:46 ` Richard Henderson
2023-04-19 9:31 ` Song Gao
2023-04-19 11:06 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 19/44] target/loongarch: Implement vexth Song Gao
2023-04-01 5:07 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 20/44] target/loongarch: Implement vsigncov Song Gao
2023-04-01 5:11 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 21/44] target/loongarch: Implement vmskltz/vmskgez/vmsknz Song Gao
2023-04-01 5:20 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 22/44] target/loongarch: Implement LSX logic instructions Song Gao
2023-04-01 5:31 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 23/44] target/loongarch: Implement vsll vsrl vsra vrotr Song Gao
2023-04-01 5:38 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 24/44] target/loongarch: Implement vsllwil vextl Song Gao
2023-04-01 5:40 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 25/44] target/loongarch: Implement vsrlr vsrar Song Gao
2023-04-01 5:42 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 26/44] target/loongarch: Implement vsrln vsran Song Gao
2023-04-01 5:46 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 27/44] target/loongarch: Implement vsrlrn vsrarn Song Gao
2023-04-01 5:53 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 28/44] target/loongarch: Implement vssrln vssran Song Gao
2023-04-02 3:26 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 29/44] target/loongarch: Implement vssrlrn vssrarn Song Gao
2023-04-02 3:31 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 30/44] target/loongarch: Implement vclo vclz Song Gao
2023-04-02 3:34 ` Richard Henderson
2023-04-07 7:40 ` gaosong
2023-04-07 16:46 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 31/44] target/loongarch: Implement vpcnt Song Gao
2023-04-02 3:35 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 32/44] target/loongarch: Implement vbitclr vbitset vbitrev Song Gao
2023-04-02 5:14 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 33/44] target/loongarch: Implement vfrstp Song Gao
2023-04-02 5:17 ` Richard Henderson
2023-04-03 2:27 ` gaosong
2023-03-28 3:06 ` [RFC PATCH v2 34/44] target/loongarch: Implement LSX fpu arith instructions Song Gao
2023-04-02 5:19 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 35/44] target/loongarch: Implement LSX fpu fcvt instructions Song Gao
2023-04-02 5:22 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 36/44] target/loongarch: Implement vseq vsle vslt Song Gao
2023-04-02 5:27 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 37/44] target/loongarch: Implement vfcmp Song Gao
2023-04-04 0:47 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 38/44] target/loongarch: Implement vbitsel vset Song Gao
2023-04-04 1:03 ` Richard Henderson
2023-04-11 11:37 ` gaosong
2023-04-12 6:53 ` Richard Henderson
2023-04-13 2:53 ` gaosong
2023-04-13 10:06 ` Richard Henderson
2023-04-14 3:22 ` gaosong
2023-04-14 3:47 ` gaosong
2023-03-28 3:06 ` [RFC PATCH v2 39/44] target/loongarch: Implement vinsgr2vr vpickve2gr vreplgr2vr Song Gao
2023-04-04 1:09 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 40/44] target/loongarch: Implement vreplve vpack vpick Song Gao
2023-04-04 1:17 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 41/44] target/loongarch: Implement vilvl vilvh vextrins vshuf Song Gao
2023-04-04 1:31 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 42/44] target/loongarch: Implement vld vst Song Gao
2023-04-04 3:35 ` Richard Henderson
2023-03-28 3:06 ` [RFC PATCH v2 43/44] target/loongarch: Implement vldi Song Gao
2023-04-04 3:39 ` Richard Henderson
2023-04-18 9:03 ` Song Gao
2023-03-28 3:06 ` [RFC PATCH v2 44/44] target/loongarch: Use {set/get}_gpr replace to cpu_fpr Song Gao
2023-04-04 3:44 ` Richard Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ced40fed-c3cd-e7d2-caa9-3b1bfdb60ae3@linaro.org \
--to=richard.henderson@linaro.org \
--cc=gaosong@loongson.cn \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).