qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v2 27/37] target/i386: Use tcg gvec ops for pmovmskb


From: Richard Henderson
Subject: Re: [PATCH v2 27/37] target/i386: Use tcg gvec ops for pmovmskb
Date: Sat, 24 Sep 2022 21:08:19 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0

On 9/20/22 17:24, Paolo Bonzini wrote:
+static void gen_pmovmskb_vec(unsigned vece, TCGv_vec d, TCGv_vec s)
+{
+    TCGv_vec t = tcg_temp_new_vec_matching(d);
+    TCGv_vec m = tcg_constant_vec_matching(d, MO_8, 0x80);
+
+    /* See above */
+    tcg_gen_and_vec(vece, d, s, m);
+    tcg_gen_shli_vec(vece, t, d, 7);
+    tcg_gen_or_vec(vece, d, d, t);
+    tcg_gen_shli_vec(vece, t, d, 14);
+    tcg_gen_or_vec(vece, d, d, t);
+    if (vece == MO_64) {
+        tcg_gen_shli_vec(vece, t, d, 28);
+        tcg_gen_or_vec(vece, d, d, t);
+    }
+}

You can drop the vece test here. I believe I was going to try to cater for Altivec host, which doesn't have 64-bit vector shift, but then decide that the re-assembly of 4 pieces wasn't worth it. And anyway, only ancient ppc host doesn't have VSX.


r~



reply via email to

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