On 12/24/22 00:16, Song Gao wrote:
+DEF_HELPER_4(vmul_b, void, env, i32, i32, i32) +DEF_HELPER_4(vmul_h, void, env, i32, i32, i32) +DEF_HELPER_4(vmul_w, void, env, i32, i32, i32) +DEF_HELPER_4(vmul_d, void, env, i32, i32, i32)
These are tcg_gen_gvec_mul.
+DEF_HELPER_4(vmuh_b, void, env, i32, i32, i32) +DEF_HELPER_4(vmuh_h, void, env, i32, i32, i32) +DEF_HELPER_4(vmuh_w, void, env, i32, i32, i32) +DEF_HELPER_4(vmuh_d, void, env, i32, i32, i32) +DEF_HELPER_4(vmuh_bu, void, env, i32, i32, i32) +DEF_HELPER_4(vmuh_hu, void, env, i32, i32, i32) +DEF_HELPER_4(vmuh_wu, void, env, i32, i32, i32) +DEF_HELPER_4(vmuh_du, void, env, i32, i32, i32)
These, sadly, have no generic equivalent. We should probably create one, since several targets have it. E.g. do_vx_mulh in target/ppc/translate/vmx-impl.c.inc.
+DEF_HELPER_4(vmulwev_h_b, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwev_w_h, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwev_d_w, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwev_q_d, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_h_b, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_w_h, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_d_w, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_q_d, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwev_h_bu, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwev_w_hu, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwev_d_wu, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwev_q_du, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_h_bu, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_w_hu, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_d_wu, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_q_du, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwev_h_bu_b, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwev_w_hu_h, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwev_d_wu_w, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwev_q_du_d, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_h_bu_b, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_w_hu_h, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_d_wu_w, void, env, i32, i32, i32) +DEF_HELPER_4(vmulwod_q_du_d, void, env, i32, i32, i32)
Similar to widening add: shifts, and, mul. r~