On 17 February 2018 at 18:22, Richard Henderson <richard.hender...@linaro.org> wrote: > Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
> +/* Two operand predicated copy immediate with merge. All valid immediates > + * can fit within 17 signed bits in the simd_data field. > + */ > +void HELPER(sve_cpy_m_b)(void *vd, void *vn, void *vg, > + uint64_t mm, uint32_t desc) > +{ > + intptr_t i, opr_sz = simd_oprsz(desc) / 8; > + uint64_t *d = vd, *n = vn; > + uint8_t *pg = vg; > + > + mm = (mm & 0xff) * (-1ull / 0xff); What is this expression doing? I guess from context that it's replicating the low 8 bits of mm across the 64-bit value, but this is too obscure to do without a comment or wrapping it in a helper function with a useful name, I think. Otherwise Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM