* RE: [PATCH] RISC-V: Fix AVL_TYPE attribute of tuple mode mov<mode>
2023-10-23 2:24 ` Jeff Law
@ 2023-10-23 2:26 ` Li, Pan2
2023-10-23 2:32 ` juzhe.zhong
1 sibling, 0 replies; 4+ messages in thread
From: Li, Pan2 @ 2023-10-23 2:26 UTC (permalink / raw)
To: Jeff Law, Juzhe-Zhong, gcc-patches; +Cc: kito.cheng, kito.cheng, rdapp.gcc
Committed, thanks Jeff.
Pan
-----Original Message-----
From: Jeff Law <jeffreyalaw@gmail.com>
Sent: Monday, October 23, 2023 10:24 AM
To: Juzhe-Zhong <juzhe.zhong@rivai.ai>; gcc-patches@gcc.gnu.org
Cc: kito.cheng@gmail.com; kito.cheng@sifive.com; rdapp.gcc@gmail.com
Subject: Re: [PATCH] RISC-V: Fix AVL_TYPE attribute of tuple mode mov<mode>
On 10/22/23 16:46, Juzhe-Zhong wrote:
> The tuple mode mov<mode> pattern doesn't have avl_type so it is invalid attribute.
>
> gcc/ChangeLog:
>
> * config/riscv/vector.md: Fix avl_type attribute of tuple mov<mode>.
Presumably you got a fault or something similar trying to compute the
avl_type attr when trying to access operands[7]? from this code:
> (eq_attr "type" "vlde,vldff,vste,vimov,vimov,vimov,vfmov,vext,vimerge,\
> vfsqrt,vfrecp,vfmerge,vfcvtitof,vfcvtftoi,vfwcvtitof,\
> vfwcvtftoi,vfwcvtftof,vfncvtitof,vfncvtftoi,vfncvtftof,\
> vfclass,vired,viwred,vfredu,vfredo,vfwredu,vfwredo,\
> vimovxv,vfmovfv,vlsegde,vlsegdff")
> (symbol_ref "INTVAL (operands[7])")
> (eq_attr "type" "vldm,vstm,vimov,vmalu,vmalu")
OK for the trunk.
Jeff
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Re: [PATCH] RISC-V: Fix AVL_TYPE attribute of tuple mode mov<mode>
2023-10-23 2:24 ` Jeff Law
2023-10-23 2:26 ` Li, Pan2
@ 2023-10-23 2:32 ` juzhe.zhong
1 sibling, 0 replies; 4+ messages in thread
From: juzhe.zhong @ 2023-10-23 2:32 UTC (permalink / raw)
To: jeffreyalaw, gcc-patches; +Cc: kito.cheng, Kito.cheng, Robin Dapp
[-- Attachment #1: Type: text/plain, Size: 1907 bytes --]
Hi, Jeff.
(define_insn_and_split "*mov<VT:mode>_<P:mode>"
[(set (match_operand:VT 0 "reg_or_mem_operand" "=vr,vr, m")
(match_operand:VT 1 "reg_or_mem_operand" " vr, m,vr"))
(clobber (match_scratch:P 2 "=X,&r,&r"))
(clobber (match_scratch:P 3 "=X,&r,&r"))
(clobber (match_scratch:P 4 "=X,&r,&r"))]
"TARGET_VECTOR"
"#"
"&& reload_completed"
[(const_int 0)]
{
riscv_vector::expand_tuple_move (operands);
DONE;
}
[(set_attr "type" "vmov,vlde,vste")
(set_attr "mode" "<VT:MODE>")
(set (attr "avl_type") (const_int INVALID_ATTRIBUTE))])
We classify this pattern as vlde/vste/vmov, this pattern doesn't have AVL TYPE operands.
I realize that when I am adding new pre-RA optimization PASS it caused issue.
juzhe.zhong@rivai.ai
From: Jeff Law
Date: 2023-10-23 10:24
To: Juzhe-Zhong; gcc-patches
CC: kito.cheng; kito.cheng; rdapp.gcc
Subject: Re: [PATCH] RISC-V: Fix AVL_TYPE attribute of tuple mode mov<mode>
On 10/22/23 16:46, Juzhe-Zhong wrote:
> The tuple mode mov<mode> pattern doesn't have avl_type so it is invalid attribute.
>
> gcc/ChangeLog:
>
> * config/riscv/vector.md: Fix avl_type attribute of tuple mov<mode>.
Presumably you got a fault or something similar trying to compute the
avl_type attr when trying to access operands[7]? from this code:
> (eq_attr "type" "vlde,vldff,vste,vimov,vimov,vimov,vfmov,vext,vimerge,\
> vfsqrt,vfrecp,vfmerge,vfcvtitof,vfcvtftoi,vfwcvtitof,\
> vfwcvtftoi,vfwcvtftof,vfncvtitof,vfncvtftoi,vfncvtftof,\
> vfclass,vired,viwred,vfredu,vfredo,vfwredu,vfwredo,\
> vimovxv,vfmovfv,vlsegde,vlsegdff")
> (symbol_ref "INTVAL (operands[7])")
> (eq_attr "type" "vldm,vstm,vimov,vmalu,vmalu")
OK for the trunk.
Jeff
^ permalink raw reply [flat|nested] 4+ messages in thread