@@ -2707,6 +2707,44 @@ def : Pat<(vselect v4i32:$vA, v4f32:$vB, v4f32:$vC),
27072707 (XXSEL $vC, $vB, $vA)>;
27082708def : Pat<(vselect v2i64:$vA, v2f64:$vB, v2f64:$vC),
27092709 (XXSEL $vC, $vB, $vA)>;
2710+
2711+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETEQ)),
2712+ v4i32:$tval, v4i32:$fval),
2713+ (XXSEL $fval, $tval, (XVCMPEQDP $lhs, $rhs))>;
2714+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETNE)),
2715+ v4i32:$tval, v4i32:$fval),
2716+ (XXSEL $tval, $fval, (XVCMPEQDP $lhs, $rhs))>;
2717+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETGE)),
2718+ v4i32:$tval, v4i32:$fval),
2719+ (XXSEL $fval, $tval, (XVCMPGEDP $lhs, $rhs))>;
2720+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETLT)),
2721+ v4i32:$tval, v4i32:$fval),
2722+ (XXSEL $tval, $fval, (XVCMPGEDP $lhs, $rhs))>;
2723+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETGT)),
2724+ v4i32:$tval, v4i32:$fval),
2725+ (XXSEL $fval, $tval, (XVCMPGTDP $lhs, $rhs))>;
2726+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETLE)),
2727+ v4i32:$tval, v4i32:$fval),
2728+ (XXSEL $tval, $fval, (XVCMPGTDP $lhs, $rhs))>;
2729+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETOEQ)),
2730+ v4i32:$tval, v4i32:$fval),
2731+ (XXSEL $fval, $tval, (XVCMPEQDP $lhs, $rhs))>;
2732+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETONE)),
2733+ v4i32:$tval, v4i32:$fval),
2734+ (XXSEL $tval, $fval, (XVCMPEQDP $lhs, $rhs))>;
2735+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETOGE)),
2736+ v4i32:$tval, v4i32:$fval),
2737+ (XXSEL $fval, $tval, (XVCMPGEDP $lhs, $rhs))>;
2738+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETOLT)),
2739+ v4i32:$tval, v4i32:$fval),
2740+ (XXSEL $tval, $fval, (XVCMPGEDP $lhs, $rhs))>;
2741+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETOGT)),
2742+ v4i32:$tval, v4i32:$fval),
2743+ (XXSEL $fval, $tval, (XVCMPGTDP $lhs, $rhs))>;
2744+ def : Pat<(vselect (v4i32 (setcc v4i32:$lhs, v4i32:$rhs, SETOLE)),
2745+ v4i32:$tval, v4i32:$fval),
2746+ (XXSEL $tval, $fval, (XVCMPGTDP $lhs, $rhs))>;
2747+
27102748def : Pat<(v1i128 (vselect v1i128:$vA, v1i128:$vB, v1i128:$vC)),
27112749 (COPY_TO_REGCLASS
27122750 (XXSEL (COPY_TO_REGCLASS $vC, VSRC),
0 commit comments