On 6/18/20 10:37 PM, Lijun Pan wrote:
> Do you mean writing two functions directly,
>
> void helper_vmulhsw(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
> {
> int i;
>
> for (i = 0; i < 4; i++) {
> r->s32[i] = (int32_t)((int64_t)a->s32[i] * (int64_t)b->s32[i]) >> 32);
> }
> }
>
> void helper_vmulhuw(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
> {
> int i;
>
> for (i = 0; i < 4; i++) {
> r->u32[i] = (uint32_t)((uint64_t)a->u32[i] * (uint64_t)b->u32[i]) >>
> 32);
> }
> }That works for me. r~
