On 9/13/21 7:21 AM, Peter Maydell wrote:
On Mon, 13 Sept 2021 at 14:56, Richard Henderson
<richard.hender...@linaro.org> wrote:

On 9/13/21 2:54 AM, Peter Maydell wrote:
+static void do_gvec_shri_s(unsigned vece, uint32_t dofs, uint32_t aofs,
+                           int64_t shift, uint32_t oprsz, uint32_t maxsz)
+{
+    /*
+     * We get here with a negated shift count, and we must handle
+     * shifts by the element size, which tcg_gen_gvec_sari() does not do.
+     */
+    shift = -shift;

You've already performed the negation in do_2shift_vec.

Here we are undoing the negation we did there, so as to get a
"positive means shift right" shift count back again, which is what
the instruction encoding has and what tcg_gen_gvic_shri() wants.

Ah, I misinterpreted.

Perhaps worth placing these functions somewhere we can share code with NEON?  
Tactical
error, perhaps, open-coding these tests in trans_VSHR_S_2sh and 
trans_VSHR_U_2sh.

I'm not convinced the resemblance is close enough to be worth the
effort...

Yeah, not with the negation bit above.


r~

Reply via email to