@@ -342,22 +342,6 @@ GEN_VXFORM_V(vsububm, MO_8, tcg_gen_gvec_sub, 0, 16);
342342GEN_VXFORM_V (vsubuhm, MO_16, tcg_gen_gvec_sub, 0 , 17 );
343343GEN_VXFORM_V (vsubuwm, MO_32, tcg_gen_gvec_sub, 0 , 18 );
344344GEN_VXFORM_V (vsubudm, MO_64, tcg_gen_gvec_sub, 0 , 19 );
345- GEN_VXFORM_V (vmaxub, MO_8, tcg_gen_gvec_umax, 1 , 0 );
346- GEN_VXFORM_V (vmaxuh, MO_16, tcg_gen_gvec_umax, 1 , 1 );
347- GEN_VXFORM_V (vmaxuw, MO_32, tcg_gen_gvec_umax, 1 , 2 );
348- GEN_VXFORM_V (vmaxud, MO_64, tcg_gen_gvec_umax, 1 , 3 );
349- GEN_VXFORM_V (vmaxsb, MO_8, tcg_gen_gvec_smax, 1 , 4 );
350- GEN_VXFORM_V (vmaxsh, MO_16, tcg_gen_gvec_smax, 1 , 5 );
351- GEN_VXFORM_V (vmaxsw, MO_32, tcg_gen_gvec_smax, 1 , 6 );
352- GEN_VXFORM_V (vmaxsd, MO_64, tcg_gen_gvec_smax, 1 , 7 );
353- GEN_VXFORM_V (vminub, MO_8, tcg_gen_gvec_umin, 1 , 8 );
354- GEN_VXFORM_V (vminuh, MO_16, tcg_gen_gvec_umin, 1 , 9 );
355- GEN_VXFORM_V (vminuw, MO_32, tcg_gen_gvec_umin, 1 , 10 );
356- GEN_VXFORM_V (vminud, MO_64, tcg_gen_gvec_umin, 1 , 11 );
357- GEN_VXFORM_V (vminsb, MO_8, tcg_gen_gvec_smin, 1 , 12 );
358- GEN_VXFORM_V (vminsh, MO_16, tcg_gen_gvec_smin, 1 , 13 );
359- GEN_VXFORM_V (vminsw, MO_32, tcg_gen_gvec_smin, 1 , 14 );
360- GEN_VXFORM_V (vminsd, MO_64, tcg_gen_gvec_smin, 1 , 15 );
361345GEN_VXFORM (vmrghb, 6 , 0 );
362346GEN_VXFORM (vmrghh, 6 , 1 );
363347GEN_VXFORM (vmrghw, 6 , 2 );
@@ -727,6 +711,27 @@ TRANS_FLAGS2(ALTIVEC_207, VEQV, do_vector_gvec3_VX, MO_64, tcg_gen_gvec_eqv);
727711TRANS_FLAGS2 (ALTIVEC_207, VNAND, do_vector_gvec3_VX, MO_64, tcg_gen_gvec_nand);
728712TRANS_FLAGS2 (ALTIVEC_207, VORC, do_vector_gvec3_VX, MO_64, tcg_gen_gvec_orc);
729713
714+ /* Integer Max/Min operations */
715+ TRANS_FLAGS (ALTIVEC, VMAXUB, do_vector_gvec3_VX, MO_8, tcg_gen_gvec_umax);
716+ TRANS_FLAGS (ALTIVEC, VMAXUH, do_vector_gvec3_VX, MO_16, tcg_gen_gvec_umax);
717+ TRANS_FLAGS (ALTIVEC, VMAXUW, do_vector_gvec3_VX, MO_32, tcg_gen_gvec_umax);
718+ TRANS_FLAGS2 (ALTIVEC_207, VMAXUD, do_vector_gvec3_VX, MO_64, tcg_gen_gvec_umax);
719+
720+ TRANS_FLAGS (ALTIVEC, VMAXSB, do_vector_gvec3_VX, MO_8, tcg_gen_gvec_smax);
721+ TRANS_FLAGS (ALTIVEC, VMAXSH, do_vector_gvec3_VX, MO_16, tcg_gen_gvec_smax);
722+ TRANS_FLAGS (ALTIVEC, VMAXSW, do_vector_gvec3_VX, MO_32, tcg_gen_gvec_smax);
723+ TRANS_FLAGS2 (ALTIVEC_207, VMAXSD, do_vector_gvec3_VX, MO_64, tcg_gen_gvec_smax);
724+
725+ TRANS_FLAGS (ALTIVEC, VMINUB, do_vector_gvec3_VX, MO_8, tcg_gen_gvec_umin);
726+ TRANS_FLAGS (ALTIVEC, VMINUH, do_vector_gvec3_VX, MO_16, tcg_gen_gvec_umin);
727+ TRANS_FLAGS (ALTIVEC, VMINUW, do_vector_gvec3_VX, MO_32, tcg_gen_gvec_umin);
728+ TRANS_FLAGS2 (ALTIVEC_207, VMINUD, do_vector_gvec3_VX, MO_64, tcg_gen_gvec_umin);
729+
730+ TRANS_FLAGS (ALTIVEC, VMINSB, do_vector_gvec3_VX, MO_8, tcg_gen_gvec_smin);
731+ TRANS_FLAGS (ALTIVEC, VMINSH, do_vector_gvec3_VX, MO_16, tcg_gen_gvec_smin);
732+ TRANS_FLAGS (ALTIVEC, VMINSW, do_vector_gvec3_VX, MO_32, tcg_gen_gvec_smin);
733+ TRANS_FLAGS2 (ALTIVEC_207, VMINSD, do_vector_gvec3_VX, MO_64, tcg_gen_gvec_smin);
734+
730735static TCGv_vec do_vrl_mask_vec (unsigned vece, TCGv_vec vrb)
731736{
732737 TCGv_vec t0 = tcg_temp_new_vec_matching (vrb),
0 commit comments