|
| From: | Richard Henderson |
| Subject: | Re: [RFC PATCH v3 37/44] target/loongarch: Implement vbitsel vset |
| Date: | Mon, 24 Apr 2023 16:53:11 +0100 |
| User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 |
On 4/20/23 09:07, Song Gao wrote:
+#define SETANYEQZ(NAME, MO) \
+void HELPER(NAME)(CPULoongArchState *env, uint32_t cd, uint32_t vj) \
+{ \
+ bool ret = false; \
+ VReg *Vj = &(env->fpr[vj].vreg); \
+ \
+ ret = do_match2(0, Vj->D(0), Vj->D(1), MO); \
+ env->cf[cd & 0x7] = ret; \
+}
Good.
+
+#define SETALLNEZ(NAME, BIT, E) \
+void HELPER(NAME)(CPULoongArchState *env, uint32_t cd, uint32_t vj) \
+{ \
+ int i; \
+ bool ret = true; \
+ VReg *Vj = &(env->fpr[vj].vreg); \
+ \
+ for (i = 0; i < LSX_LEN/BIT; i++) { \
+ ret &= (Vj->E(i) != 0); \
+ } \
+ env->cf[cd & 0x7] = ret; \
+}
setallnez = !setanyeqz, so use !do_match2(). r~
| [Prev in Thread] | Current Thread | [Next in Thread] |