[PATCH] RISC-V: Remove FRM_REGNUM dependency for rtx conversions
Kito Cheng
kito.cheng@sifive.com
Thu May 25 04:02:13 GMT 2023
LGTM, thanks :)
On Wed, May 24, 2023 at 7:26 PM <juzhe.zhong@rivai.ai> wrote:
>
> From: Juzhe-Zhong <juzhe.zhong@rivai.ai>
>
> According to RVV ISA:
> The conversions use the dynamic rounding mode in frm, except for the rtz variants, which round towards zero.
>
> So rtz conversion patterns should not have FRM dependency.
>
> We can't support mode switching for FRM yet since rvv intrinsic doc is not updated but
> I think this patch is correct.
>
> gcc/ChangeLog:
>
> * config/riscv/vector.md: Remove FRM_REGNUM dependency in rtz instructions.
>
> ---
> gcc/config/riscv/vector.md | 12 +++---------
> 1 file changed, 3 insertions(+), 9 deletions(-)
>
> diff --git a/gcc/config/riscv/vector.md b/gcc/config/riscv/vector.md
> index 9afef0d12bc..15f66efaa48 100644
> --- a/gcc/config/riscv/vector.md
> +++ b/gcc/config/riscv/vector.md
> @@ -7072,10 +7072,8 @@
> (match_operand 5 "const_int_operand" " i, i, i, i")
> (match_operand 6 "const_int_operand" " i, i, i, i")
> (match_operand 7 "const_int_operand" " i, i, i, i")
> - (match_operand 8 "const_int_operand" " i, i, i, i")
> (reg:SI VL_REGNUM)
> - (reg:SI VTYPE_REGNUM)
> - (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
> + (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
> (any_fix:<VCONVERT>
> (match_operand:VF 3 "register_operand" " vr, vr, vr, vr"))
> (match_operand:<VCONVERT> 2 "vector_merge_operand" " vu, 0, vu, 0")))]
> @@ -7142,10 +7140,8 @@
> (match_operand 5 "const_int_operand" " i, i")
> (match_operand 6 "const_int_operand" " i, i")
> (match_operand 7 "const_int_operand" " i, i")
> - (match_operand 8 "const_int_operand" " i, i")
> (reg:SI VL_REGNUM)
> - (reg:SI VTYPE_REGNUM)
> - (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
> + (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
> (any_fix:VWCONVERTI
> (match_operand:<VNCONVERT> 3 "register_operand" " vr, vr"))
> (match_operand:VWCONVERTI 2 "vector_merge_operand" " vu, 0")))]
> @@ -7233,10 +7229,8 @@
> (match_operand 5 "const_int_operand" " i, i, i, i, i, i")
> (match_operand 6 "const_int_operand" " i, i, i, i, i, i")
> (match_operand 7 "const_int_operand" " i, i, i, i, i, i")
> - (match_operand 8 "const_int_operand" " i, i, i, i, i, i")
> (reg:SI VL_REGNUM)
> - (reg:SI VTYPE_REGNUM)
> - (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
> + (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
> (any_fix:<VNCONVERT>
> (match_operand:VF 3 "register_operand" " 0, 0, 0, 0, vr, vr"))
> (match_operand:<VNCONVERT> 2 "vector_merge_operand" " vu, 0, vu, 0, vu, 0")))]
> --
> 2.36.1
>
More information about the Gcc-patches
mailing list