Hi Paul-Antoine:

> diff --git gcc/config/riscv/autovec-opt.md gcc/config/riscv/autovec-opt.md
> index d56fb5f237c..5cb34cef418 100644
> --- gcc/config/riscv/autovec-opt.md
> +++ gcc/config/riscv/autovec-opt.md
> @@ -2163,3 +2163,41 @@ (define_insn_and_split "*vfmax_vf_<mode>"
>    }
>    [(set_attr "type" "vfminmax")]
>  )
> +
> +(define_insn_and_split "*vfmax_vf_ieee_<mode>"
> +  [(set (match_operand:V_VLSF 0 "register_operand")
> +    (unspec:V_VLSF [
> +      (vec_duplicate:V_VLSF
> +       (match_operand:<VEL> 2 "register_operand"))
> +      (match_operand:V_VLSF 1 "register_operand")
> +      ] UNSPEC_VFMAX))]
> +  "TARGET_VECTOR && !HONOR_SNANS (<MODE>mode) && can_create_pseudo_p ()"

Could you try to use the iterator to merge the pattern with vfmin_vf?
you can grep UNSPEC_VFMAXMIN and see the example in vector.md

Reply via email to