OK, I will solve the comparison operation first and then do some check over other operations.
Regards, Demin From: [email protected] <[email protected]> Sent: 2024年3月5日 17:02 To: Demin Han <[email protected]>; gcc-patches <[email protected]> Cc: kito.cheng <[email protected]>; pan2.li <[email protected]>; jeffreyalaw <[email protected]>; Robin Dapp <[email protected]>; richard.sandiford <[email protected]> Subject: Re: RE:[PATCH 3/5] RISC-V: Support vmfxx.vf for autovec comparison of vec and imm Yes. I think we are lacking some combine patterns to do all vector-scalar combinations. If you are interested at this topic, you can do some investigations on that (I believe currently no body works on it for now). I bet we should add some patterns for late-combine PASS for example: (set (plus : (vec_duplicate) (reg))) ________________________________ [email protected]<mailto:[email protected]> From: Demin Han<mailto:[email protected]> Date: 2024-03-05 16:40 To: 钟居哲<mailto:[email protected]>; gcc-patches<mailto:[email protected]> CC: kito.cheng<mailto:[email protected]>; Li, Pan2<mailto:[email protected]>; jeffreyalaw<mailto:[email protected]>; Robin Dapp<mailto:[email protected]>; richard.sandiford<mailto:[email protected]> Subject: RE: Re:[PATCH 3/5] RISC-V: Support vmfxx.vf for autovec comparison of vec and imm Hi, I applied the mentioned last_combine patch(https://patchwork.ozlabs.org/project/gcc/patch/[email protected]/). And did some initial tests. Found that: 1. Float vector-scalar and vector-imm are OK 2. Integer vector-scalar is OK 3. Integer vector-imm(e.g. a[i] > 16) is not OK. When reaches last_combine pass, vec_duplicate(0x10) form is still kept, but no pattern match this now, because all scalar patterns have “register_operand” predication. I think MD file or expand function of rvv need to change for this situation. Regards, Demin
