From: Jiajie Chen <c@jia.je>
To: gaosong@loongson.cn, qemu-devel@nongnu.org
Cc: git@xen0n.name, Richard Henderson <richard.henderson@linaro.org>
Subject: Re: [PATCH v3 16/16] tcg/loongarch64: Implement 128-bit load & store
Date: Sun, 3 Sep 2023 09:10:02 +0800 [thread overview]
Message-ID: <e6937197-b09f-4222-2a27-abdd2a2ec10d@jia.je> (raw)
In-Reply-To: <fdd190b9-2d56-a888-d6b4-da9534a38339@linaro.org>
On 2023/9/3 09:06, Richard Henderson wrote:
> On 9/1/23 22:02, Jiajie Chen wrote:
>> If LSX is available, use LSX instructions to implement 128-bit load &
>> store.
>
> Is this really guaranteed to be an atomic 128-bit operation?
>
Song Gao, please check this.
> Or, as for many vector processors, is this really two separate 64-bit
> memory operations under the hood?
>
>
>> +static void tcg_out_qemu_ldst_i128(TCGContext *s, TCGReg data_lo,
>> TCGReg data_hi,
>> + TCGReg addr_reg, MemOpIdx oi,
>> bool is_ld)
>> +{
>> + TCGLabelQemuLdst *ldst;
>> + HostAddress h;
>> +
>> + ldst = prepare_host_addr(s, &h, addr_reg, oi, true);
>> + if (is_ld) {
>> + tcg_out_opc_vldx(s, TCG_VEC_TMP0, h.base, h.index);
>> + tcg_out_opc_vpickve2gr_d(s, data_lo, TCG_VEC_TMP0, 0);
>> + tcg_out_opc_vpickve2gr_d(s, data_hi, TCG_VEC_TMP0, 1);
>> + } else {
>> + tcg_out_opc_vinsgr2vr_d(s, TCG_VEC_TMP0, data_lo, 0);
>> + tcg_out_opc_vinsgr2vr_d(s, TCG_VEC_TMP0, data_hi, 1);
>> + tcg_out_opc_vstx(s, TCG_VEC_TMP0, h.base, h.index);
>> + }
>
> You should use h.aa.atom < MO_128 to determine if 128-bit atomicity,
> and therefore the vector operation, is required. I assume the gr<->vr
> moves have a cost and two integer operations are preferred when
> allowable.
>
> Compare the other implementations of this function.
>
>
> r~
next prev parent reply other threads:[~2023-09-03 1:10 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-02 5:02 [PATCH v3 00/16] Lower TCG vector ops to LSX Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 01/16] tcg/loongarch64: Import LSX instructions Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 02/16] tcg/loongarch64: Lower basic tcg vec ops to LSX Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 03/16] tcg: pass vece to tcg_target_const_match() Jiajie Chen
2023-09-03 0:50 ` Richard Henderson
2023-09-02 5:02 ` [PATCH v3 04/16] tcg/loongarch64: Lower cmp_vec to vseq/vsle/vslt Jiajie Chen
2023-09-03 0:50 ` Richard Henderson
2023-09-02 5:02 ` [PATCH v3 05/16] tcg/loongarch64: Lower add/sub_vec to vadd/vsub Jiajie Chen
2023-09-03 0:54 ` Richard Henderson
2023-09-02 5:02 ` [PATCH v3 06/16] tcg/loongarch64: Lower vector bitwise operations Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 07/16] tcg/loongarch64: Lower neg_vec to vneg Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 08/16] tcg/loongarch64: Lower mul_vec to vmul Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 09/16] tcg/loongarch64: Lower vector min max ops Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 10/16] tcg/loongarch64: Lower vector saturated ops Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 11/16] tcg/loongarch64: Lower vector shift vector ops Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 12/16] tcg/loongarch64: Lower bitsel_vec to vbitsel Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 13/16] tcg/loongarch64: Lower vector shift integer ops Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 14/16] tcg/loongarch64: Lower rotv_vec ops to LSX Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 15/16] tcg/loongarch64: Lower rotli_vec to vrotri Jiajie Chen
2023-09-02 5:02 ` [PATCH v3 16/16] tcg/loongarch64: Implement 128-bit load & store Jiajie Chen
2023-09-03 1:06 ` Richard Henderson
2023-09-03 1:10 ` Jiajie Chen [this message]
2023-09-04 1:43 ` gaosong
2023-09-04 9:43 ` bibo mao
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=e6937197-b09f-4222-2a27-abdd2a2ec10d@jia.je \
--to=c@jia.je \
--cc=gaosong@loongson.cn \
--cc=git@xen0n.name \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.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).