On 8/6/20 3:46 AM, [email protected] wrote:
> + float flmul;
int8_t? It seems weird that the translator wouldn't also use...
> +/*
> + * Encode LMUL to lmul as following:
> + * LMUL vlmul lmul
> + * 1 000 0
> + * 2 001 1
> + * 4 010 2
> + * 8 011 3
> + * - 100 -
> + * 1/8 101 -3
> + * 1/4 110 -2
> + * 1/2 111 -1
> + */
> +static inline int32_t vext_lmul(uint32_t desc)
> {
> - return FIELD_EX32(simd_data(desc), VDATA, LMUL);
> + uint32_t lmul = FIELD_EX32(simd_data(desc), VDATA, LMUL);
> + return (int8_t)(lmul << 5) >> 5;
> }
... this encoding?
Oh, and sextract32(lmul, 0, 3) instead of those shifts.
r~