Message ID | 20231022224643.1445215-1-juzhe.zhong@rivai.ai |
---|---|
State | New |
Headers | show |
Series | RISC-V: Fix AVL_TYPE attribute of tuple mode mov<mode> | expand |
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
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
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
diff --git a/gcc/config/riscv/vector.md b/gcc/config/riscv/vector.md index 32955fb8cf0..ef91950178f 100644 --- a/gcc/config/riscv/vector.md +++ b/gcc/config/riscv/vector.md @@ -1208,7 +1208,8 @@ DONE; } [(set_attr "type" "vmov,vlde,vste") - (set_attr "mode" "<VT:MODE>")]) + (set_attr "mode" "<VT:MODE>") + (set (attr "avl_type") (const_int INVALID_ATTRIBUTE))]) ;; ----------------------------------------------------------------- ;; ---- VLS Moves Operations