qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 41/61] target/riscv: vector floating-point merge instructi


From: LIU Zhiwei
Subject: Re: [PATCH v6 41/61] target/riscv: vector floating-point merge instructions
Date: Sat, 28 Mar 2020 23:47:57 +0800
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0



On 2020/3/28 11:23, Richard Henderson wrote:
On 3/17/20 8:06 AM, LIU Zhiwei wrote:
+    for (i = 0; i < vl; i++) {                            \
+        if (!vm && !vext_elem_mask(v0, mlen, i)) {        \
+            ETYPE s2 = *((ETYPE *)vs2 + H(i));            \
+            *((ETYPE *)vd + H1(i)) = s2;                  \
H1 should be H.
Yes.

+        } else {                                          \
+            *((ETYPE *)vd + H(i)) = (ETYPE)s1;            \
+        }                                                 \
You can also hoist the s2 dereference out of the IF, and let the assignment be
unconditional.

   *((ETYPE *)vd + H(i))
     = (!vm && !vext_elem_mask(v0, mlen, i) ? s2 : s1);
Yes, it's much better.

Zhiwei


r~




reply via email to

[Prev in Thread] Current Thread [Next in Thread]