Re: Re: [PATCH V2] RISC-V: Support CALL conditional autovec patterns

2023-08-03 Thread
No. prepare_ternary can not be seperate patch. It's a bug fix patch which is discovered in autovectorization. Thanks for comments. I will commit it when middle-end is approved by Richi. >> As to the lmul = 8 ICE, is the problem that the register allocator >> would actually need 5 "registers"

Re: Re: [PATCH] RISC-V: Implement vector "average" autovec pattern.

2023-08-02 Thread
ot; } You could either simpilfy put them into "widen" directory or create a new directly. Anyway, make sure you have fully tested it with LMUL = 1/2/4. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-08-03 02:49 To: 钟居哲; gcc-patches; palmer; kito.cheng; Jeff Law CC: rdapp.gcc Subject: Re:

Re: Re: [PATCH] RISC-V: Implement vector "average" autovec pattern.

2023-08-02 Thread
I just checked LLVM: https://godbolt.org/z/nMa6qnEeT This patch generally is reasonable so LGTM. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-08-03 02:49 To: 钟居哲; gcc-patches; palmer; kito.cheng; Jeff Law CC: rdapp.gcc Subject: Re: [PATCH] RISC-V: Implement vector "average&quo

Re: [PATCH] RISC-V: Implement vector "average" autovec pattern.

2023-08-02 Thread
I am concerning: 1. How do you model round to +Inf (avg_floor) and round to -Inf (avg_ceil) ? 2. Is it possible we could use vaadd[u] to model avg ? juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-08-01 22:31 To: gcc-patches; palmer; Kito Cheng; juzhe.zh...@rivai.ai; jeffreyalaw CC:

Re: Re: [PATCH V2] RISC-V: Support POPCOUNT auto-vectorization

2023-07-31 Thread
>> From my recollection this is usually 30-40% faster than the naive tree >> adder and also amenable to vectorization. As long as the multiplication >> is not terribly slow, that is. Mula's algorithm should be significantly >> faster even, another 30% IIRC. >> I'm not against continuing with

Re: Re: [PATCH] RISC-V: Support POPCOUNT auto-vectorization

2023-07-31 Thread
Address comment and fix on V2: https://gcc.gnu.org/pipermail/gcc-patches/2023-July/625870.html Ok for trunk? juzhe.zh...@rivai.ai From: Kito Cheng Date: 2023-07-31 21:38 To: Juzhe-Zhong CC: gcc-patches; kito.cheng; jeffreyalaw; rdapp.gcc Subject: Re: [PATCH] RISC-V: Support POPCOUNT

Re: Re: [PATCH V2] VECT: Support CALL vectorization for COND_LEN_*

2023-07-31 Thread
else if (reduc_idx >= 0) { /* FMA -> COND_LEN_FMA takes 4 extra arguments:MASK,ELSE,LEN,BIAS. */ ifn = get_len_internal_fn (cond_fn); vect_nargs += 4; } else gcc_unreachable (); } Thanks. juzhe.zh...@rivai.ai From: Richard Biener Da

Re: Re: [PATCH] RISC-V: Support POPCOUNT auto-vectorization

2023-07-31 Thread
>> Drop outer loop if word_size never larger than 1? Yeah. we never have TI vector modes for now. The codes I just directly copy from LLVM in generic intrinsic handling :) since LLVM generic code is considering handling INT128 vector I will remove all redundant code for INT128 vector mode

Re: Re: [committed] RISC-V: Fix bug of get_mask_mode

2023-07-31 Thread
Ok. Thanks. Li Pan is still testing. juzhe.zh...@rivai.ai From: Kito Cheng Date: 2023-07-31 21:45 To: Kito Cheng CC: Juzhe-Zhong; gcc-patches; jeffreyalaw; macro; pan2.li; rdapp.gcc Subject: Re: [committed] RISC-V: Fix bug of get_mask_mode I saw you didn't push yet, so I pushed another

Re: Re: [PATCH V2] VECT: Support CALL vectorization for COND_LEN_*

2023-07-31 Thread
Yeah. I have tried this case too. But this case doesn't need to be vectorized as COND_FMA, am I right? The thing I wonder is that whether this condtion: if (mask_opno >= 0 && reduc_idx >= 0) or similar as len if (len_opno >= 0 && reduc_idx >= 0) Whether they are redundant in

Re: Re: [PATCH v7] RISC-V: Support CALL for RVV floating-point dynamic rounding

2023-07-26 Thread
-07-27 06:46 To: 钟居哲; rdapp.gcc; kito.cheng; pan2.li CC: gcc-patches; yanzhang.wang Subject: Re: [PATCH v7] RISC-V: Support CALL for RVV floating-point dynamic rounding On 7/26/23 16:21, 钟居哲 wrote: > Hi, Jeff. > > insert_insn_end_basic_block is to handle this following case: > >

Re: Re: [PATCH] RISC-V: Enable basic VLS modes support

2023-07-26 Thread
>> Any specific reason for MAX_BITS_PER_WORD instead of >> GET_MODE_BITSIZE (Pmode)? In general I like the idea to switch >> to scalar moves here but couldn't it already be debatable for >> a 64-bit move on rv32 i.e. a question of costing? V2SImode for example, I think I prefer this following

Re: Re: [PATCH v7] RISC-V: Support CALL for RVV floating-point dynamic rounding

2023-07-26 Thread
Hi, Jeff. insert_insn_end_basic_block is to handle this following case: bb 1: ... CALL.>BB_END of bb bb 2: vfadd rne You can see there is no instructions after CALL. So you we use insert_insn_end_basic_block insert a "frrm" at the end of the bb 1. I know typically it's better to insert

Re: Re: [PATCH v7] RISC-V: Support CALL for RVV floating-point dynamic rounding

2023-07-26 Thread
Explicitly backup and restore for each intrinsic just the same as we did for CALL in this patch. I can't have the data to prove how good we use LCM/PRE of mode switching but I trust it. Since the the LCM/PRE is the key optimization method of VSETVL PASS which is doing good job on VSETVL

Re: Re: [PATCH] VECT: Support CALL vectorization for COND_LEN_*

2023-07-24 Thread
Hi, Richi. Thank you so much for review. >> This function doesn't seem to care about conditional vectorization >> support, so why are you changing it? I debug and analyze the code here: Breakpoint 1, vectorizable_call (vinfo=0x3d358d0, stmt_info=0x3dcc820, gsi=0x0, vec_stmt=0x0, slp_node=0x0,

Re: Re: [PATCH V2] RISC-V: Refactor RVV machine modes

2023-07-19 Thread
Yes. It reduces 3.4K from 17.5K to 14.1k. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-07-20 07:15 To: Juzhe-Zhong; gcc-patches CC: kito.cheng; kito.cheng; rdapp.gcc Subject: Re: [PATCH V2] RISC-V: Refactor RVV machine modes On 7/19/23 16:45, Juzhe-Zhong wrote: > Current machine modes

Re: Re: [PATCH] RTL_SSA: Relax PHI_MODE in phi_setup

2023-07-17 Thread
Thanks so much. It works! https://gcc.gnu.org/pipermail/gcc-patches/2023-July/624694.html Is it OK? juzhe.zh...@rivai.ai From: Richard Sandiford Date: 2023-07-17 22:31 To: Juzhe-Zhong CC: gcc-patches Subject: Re: [PATCH] RTL_SSA: Relax PHI_MODE in phi_setup Juzhe-Zhong writes: > Hi,

Re: Re: [PATCH] RISC-V: Support non-SLP unordered reduction

2023-07-14 Thread
So to be safe, I think it should be backport to GCC 13 even though I didn't have a intrinsic testcase to reproduce it. juzhe.zh...@rivai.ai From: Kito Cheng Date: 2023-07-14 20:38 To: 钟居哲 CC: GCC Patches; Kito Cheng; Palmer Dabbelt; Robin Dapp; Jeff Law Subject: Re: [PATCH] RISC-V: Support

Re: Re: [PATCH] RISC-V: Support non-SLP unordered reduction

2023-07-14 Thread
reproduced by reduction auto-vectorization. juzhe.zh...@rivai.ai From: Kito Cheng Date: 2023-07-14 20:38 To: 钟居哲 CC: GCC Patches; Kito Cheng; Palmer Dabbelt; Robin Dapp; Jeff Law Subject: Re: [PATCH] RISC-V: Support non-SLP unordered reduction 於 2023年7月14日 週五 20:31 寫道: From: Ju-Zhe Zhong

Re: Re: [PATCH] RISC-V: Enable COND_LEN_FMA auto-vectorization

2023-07-13 Thread
Ok. Comments added: in V2: https://gcc.gnu.org/pipermail/gcc-patches/2023-July/624476.html juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-07-13 23:25 To: juzhe.zhong; Kito Cheng CC: rdapp.gcc; gcc-patches; jeffreyalaw; kito.cheng; palmer; palmer Subject: Re: [PATCH] RISC-V: Enable

Re: Re: [PATCH V7] RISC-V: RISC-V: Support gather_load/scatter RVV auto-vectorization

2023-07-13 Thread
No, I am just want to whether we have some CALL vectorization need len or mask predication. For example, Current GCC vectorization CALL onyl FMAX/FMIN/FMA/FNMA/FMS/FNMS these CALL function need length or mask predicate. I don't care about sin/cos/popcount...etc. We just use full vector

Re: Re: [PATCH] RISC-V: Enable COND_LEN_FMA auto-vectorization

2023-07-13 Thread
Yes. Not always fail. juzhe.zh...@rivai.ai From: Kito Cheng Date: 2023-07-13 22:39 To: juzhe.zh...@rivai.ai CC: Robin Dapp; gcc-patches; jeffreyalaw; kito.cheng; palmer; palmer Subject: Re: Re: [PATCH] RISC-V: Enable COND_LEN_FMA auto-vectorization I didn’t try on local yet, but it sounds

Re: Re: [PATCH V7] RISC-V: RISC-V: Support gather_load/scatter RVV auto-vectorization

2023-07-12 Thread
have some kind of builtin function call vectorization by using RVV instructions. Thanks. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-07-13 06:25 To: 钟居哲; gcc-patches CC: kito.cheng; kito.cheng; rdapp.gcc Subject: Re: [PATCH V7] RISC-V: RISC-V: Support gather_load/scatter RVV auto

Re: Re: [PATCH V7] RISC-V: RISC-V: Support gather_load/scatter RVV auto-vectorization

2023-07-12 Thread
Thanks Jeff. Will commit with formating the codes. I am gonna first support COND_FMA and reduction first (which I think is higher priority). Then come back support strided_load/store. Thanks. juzhe.zh...@rivai.ai 发件人: Jeff Law 发送时间: 2023-07-13 05:48 收件人: 钟居哲; gcc-patches 抄送: kito.cheng

Re: Re: [PATCH] RISC-V: Support COND_LEN_* patterns

2023-07-12 Thread
>> Return true if the operation requires a rounding mode operand. Maybe also >>call it needs_fp_rounding? ok >>What's FMLA? That's SVE I suppose and ours is fmacc? Yes, the comments is misleading will fix it soon. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-07-12 22:24 To: Juzhe-Zhong;

Re: [PATCH] RISC-V: Support COND_LEN_* patterns

2023-07-12 Thread
The middle-end vectorizer patch is approved and soon will be merged. The middle-end dependency is resolved. Ok for trunk? juzhe.zh...@rivai.ai From: Juzhe-Zhong Date: 2023-07-12 12:44 To: gcc-patches CC: kito.cheng; kito.cheng; jeffreyalaw; rdapp.gcc; Juzhe-Zhong Subject: [PATCH] RISC-V:

Re: Re: [PATCH V3] VECT: Apply COND_LEN_* into vectorizable_operation

2023-07-12 Thread
I fix comments as you suggested. Thanks a lot! Soon will merge it when I finish the bootstrap && regression. juzhe.zh...@rivai.ai From: Richard Sandiford Date: 2023-07-12 20:14 To: juzhe.zhong CC: gcc-patches; rguenther Subject: Re: [PATCH V3] VECT: Apply COND_LEN_* into

Re: Re: [PATCH] genopinit: Allow more than 256 modes.

2023-07-11 Thread
Sorry for sending incorrect email. Forget about this:). juzhe.zh...@rivai.ai From: 钟居哲 Date: 2023-07-11 21:55 To: rdapp.gcc; gcc-patches; Jeff Law; richard.sandiford; rguenther CC: rdapp.gcc Subject: Re: [PATCH] genopinit: Allow more than 256 modes. For example: https://godbolt.org/z

Re: [PATCH] genopinit: Allow more than 256 modes.

2023-07-11 Thread
For example: https://godbolt.org/z/1d6v5WKhY Clang can vectorize but GCC failed even with -ffast-math. So I think conversions should be well checked again to make sure every variant can vectorize. Thanks. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-07-11 21:31 To: Robin Dapp via

Re: Re: [PATCH] RISC-V: Optimize permutation codegen with vcompress

2023-07-11 Thread
MASK4 0, 5, 6, 7 also works definitely. The optimization is generic as long as the permutation index matches the compress insn on RVV ISA SPEC. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-07-11 20:24 To: 钟居哲; gcc-patches CC: rdapp.gcc; kito.cheng; kito.cheng; Jeff Law Subject: Re

Re: Re: [PATCH] RISC-V: Optimize permutation codegen with vcompress

2023-07-11 Thread
The compress optimization pattern has included all variety. It's not necessary to force split (half/half), we can apply this compress pattern to any variety of compress pattern. You can apply this patch to see. Thanks. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-07-11 20:17 To:

Re: [PATCH] genopinit: Allow more than 256 modes.

2023-07-11 Thread
Thanks for fixing it. CC Richards to see whether it is appropriate. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-07-11 19:51 To: gcc-patches CC: rdapp.gcc; jeffreyalaw; juzhe.zh...@rivai.ai Subject: [PATCH] genopinit: Allow more than 256 modes. Hi, upcoming changes for RISC-V will have

Re: Re: [PATCH] RISC-V: Support vfwmul.vv combine lowering

2023-07-07 Thread
Sure. We can come back to see in the future which doesn't change this codegen quality: https://godbolt.org/z/d6rWPTWeW juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-07-08 05:11 To: juzhe.zh...@rivai.ai; Robin Dapp CC: gcc-patches; kito.cheng; Kito.cheng; palmer; palmer Subject: Re:

Re: Re: [PATCH V4] RISC-V: Support gather_load/scatter RVV auto-vectorization

2023-07-07 Thread
Thanks. I still sent V5 with fixing "dummy" into "vlmax" and add more comments. Thanks. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-07-07 20:34 To: Juzhe-Zhong; gcc-patches CC: rdapp.gcc; kito.cheng; kito.cheng; palmer; palmer; jeffreyalaw Subject: Re: [PATCH V4] RISC-V: Support

Re: Re: [PATCH] RISC-V: Support vfwmul.vv combine lowering

2023-06-29 Thread
Or do you have better solution to make the case succeed to combine into vfwmul? I am ok with any solution. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-30 06:59 To: 钟居哲; gcc-patches CC: kito.cheng; kito.cheng; palmer; palmer; rdapp.gcc Subject: Re: [PATCH] RISC-V: Support vfwmul.vv

Re: Re: [PATCH] RISC-V: Support vfwmul.vv combine lowering

2023-06-29 Thread
PE1) b2[i];\ }\ } TEST_TYPE (double, float) You should try this, then you will know I am saying. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-30 06:59 To: 钟居哲; gcc-patches CC: kito.cheng; kito.cheng; palmer; palmer; rdapp.gcc Subject: Re: [PATCH] RISC-V: Support vfwmul.vv combine lowering On 6

Re: Re: [PATCH] RISC-V: Support vfwnmacc/vfwmsac/vfwnmsac combine lowering

2023-06-28 Thread
Sure. https://godbolt.org/z/8857KzTno Failed to match this instruction: (set (reg:VNx2DF 134 [ vect__31.47 ]) (fma:VNx2DF (neg:VNx2DF (float_extend:VNx2DF (reg:VNx2SF 136 [ vect__28.44 ]))) (reg:VNx2DF 150 [ vect__8.12 ]) (reg:VNx2DF 171 [ vect__29.45 ])))

Re: Re: [PATCH] RISC-V: Support vfwmul.vv combine lowering

2023-06-28 Thread
You can see here: https://godbolt.org/z/d78646hWb The first case can't genreate vfwmul.vv but second case succeed. Failed to match this instruction: (set (reg:VNx2DF 150 [ vect__11.50 ]) (if_then_else:VNx2DF (unspec:VNx2BI [ (const_vector:VNx2BI repeat [

Re: Re: [PATCH V3] RISC-V: Fix bug of pre-calculated const vector mask for VNx1BI, VNx2BI and VNx4BI

2023-06-28 Thread
Ok. Plz go ahead commit this change with the testcases. Then it won't block the following patches. Thanks. juzhe.zh...@rivai.ai From: Richard Sandiford Date: 2023-06-29 04:42 To: Robin Dapp via Gcc-patches CC: 钟居哲; Jeff Law; Robin Dapp; kito.cheng; kito.cheng; palmer; palmer Subject: Re

Re: Re: [PATCH V3] RISC-V: Fix bug of pre-calculated const vector mask for VNx1BI, VNx2BI and VNx4BI

2023-06-28 Thread
Try this: https://godbolt.org/z/x7bM5Pr84 juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-29 02:11 To: Juzhe-Zhong; gcc-patches CC: kito.cheng; kito.cheng; palmer; palmer; rdapp.gcc Subject: Re: [PATCH V3] RISC-V: Fix bug of pre-calculated const vector mask for VNx1BI, VNx2BI and VNx4BI

Re: FW: [PATCH v5 0/19] Support early break/return auto-vectorization

2023-06-28 Thread
Hi, Tamar. This is an amazing auto-vectorization flow. I am thinking about whether RVV can also get benefits from this optimization. IMHO, RVV should be also using this flow. So, to allow RVV (target uses len as loop_control and mask as flow control), I am not sure whether we can do this (Feel

Re: [PATCH V2] RISC-V: Support const vector expansion with step vector with base != 0

2023-06-26 Thread
Ping. This patch is a simple fix here. Ok for trunk ? juzhe.zh...@rivai.ai From: Juzhe-Zhong Date: 2023-06-26 20:18 To: gcc-patches CC: kito.cheng; kito.cheng; palmer; palmer; jeffreyalaw; rdapp.gcc; Juzhe-Zhong Subject: [PATCH V2] RISC-V: Support const vector expansion with step vector with

Re: [PATCH] RISC-V: Add autovect widening/narrowing Integer/FP conversions.

2023-06-26 Thread
LGTM. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-27 02:59 To: gcc-patches; palmer; Kito Cheng; juzhe.zh...@rivai.ai; jeffreyalaw CC: rdapp.gcc Subject: [PATCH] RISC-V: Add autovect widening/narrowing Integer/FP conversions. Hi, this patch implements widening and narrowing

Re: [PATCH] RISC-V: Add autovec FP widening/narrowing.

2023-06-26 Thread
A comment here: - [(set_attr "type" "vshift") + [(set_attr "type" "vnshift") You should drop this change, otherwise LGTM. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-27 02:58 To: gcc-patches; palmer; Kito Cheng; juzhe.zh...@rivai.ai; jeffreyalaw CC: rdapp.gcc Subject: [PATCH]

Re: Re: [PATCH] RISC-V: Add autovec FP int->float conversion.

2023-06-26 Thread
LGTM too. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-27 05:50 To: Robin Dapp; gcc-patches; palmer; Kito Cheng; juzhe.zh...@rivai.ai Subject: Re: [PATCH] RISC-V: Add autovec FP int->float conversion. On 6/26/23 12:58, Robin Dapp wrote: > Hi, > > this patch adds the autovec expander

Re: Re: [PATCH V3] SCCVN: Add LEN_MASK_STORE and fix LEN_STORE

2023-06-26 Thread
Hi,Richi.>> I guess it would be nice to re-formulate the loop in terms of >> the encoded VECTOR_CST elts, but then we need to generate >> the "extents" for set bits, not sure how to do that here. >> Note in the end we get HOST_WIDE_INT extents from adding >> the element size for each mask element

Re: [PATCH] RISC-V: Add an experimental vector calling convention

2023-06-25 Thread
Thanks for doing this. A couple comments here: 1. -riscv_init_cumulative_args (CUMULATIVE_ARGS *cum, - tree fntype ATTRIBUTE_UNUSED, - rtx libname ATTRIBUTE_UNUSED, - tree fndecl, +riscv_init_cumulative_args

Re: [PATCH] RISC-V: Refactor the integer ternary autovec pattern

2023-06-23 Thread
Is this patch ok for trunk ? Tests are all passed. juzhe.zh...@rivai.ai From: Juzhe-Zhong Date: 2023-06-22 06:38 To: gcc-patches CC: kito.cheng; palmer; rdapp.gcc; jeffreyalaw; Juzhe-Zhong Subject: [PATCH] RISC-V: Refactor the integer ternary autovec pattern Long time ago, I encounter ICE

Re: Re: [PATCH] SSA ALIAS: Apply LEN_MASK_{LOAD, STORE} into SSA alias analysis

2023-06-23 Thread
Not sure since I saw MASK_STORE/LEN_STORE didn't compute size. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-24 03:20 To: juzhe.zhong; gcc-patches CC: rguenther; richard.sandiford Subject: Re: [PATCH] SSA ALIAS: Apply LEN_MASK_{LOAD, STORE} into SSA alias analysis On 6/23/23 07:56,

Re: Re: [PATCH] LOOP IVOPTS: Apply LEN_MASK_{LOAD,STORE}

2023-06-23 Thread
Ok will send V2 soon. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-24 03:14 To: juzhe.zhong; gcc-patches CC: rguenther; richard.sandiford Subject: Re: [PATCH] LOOP IVOPTS: Apply LEN_MASK_{LOAD,STORE} On 6/23/23 08:05, juzhe.zh...@rivai.ai wrote: > From: Ju-Zhe Zhong > >

Re: Re: [PATCH] SSA ALIAS: Apply LEN_MASK_STORE to 'ref_maybe_used_by_call_p_1'

2023-06-23 Thread
Not sure since I saw MASK_STORE/LEN_STORE didn't compute size. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-24 00:27 To: juzhe.zhong; gcc-patches CC: rguenther; richard.sandiford Subject: Re: [PATCH] SSA ALIAS: Apply LEN_MASK_STORE to 'ref_maybe_used_by_call_p_1' On 6/23/23 08:15,

Re: Re: [PATCH] DSE: Add LEN_MASK_STORE analysis into DSE

2023-06-23 Thread
Address comment. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-23 22:57 To: juzhe.zhong; gcc-patches CC: rguenther; richard.sandiford Subject: Re: [PATCH] DSE: Add LEN_MASK_STORE analysis into DSE On 6/23/23 08:48, juzhe.zh...@rivai.ai wrote: > From: Ju-Zhe Zhong > > gcc/ChangeLog:

Re: Re: [PATCH V6] VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer

2023-06-23 Thread
Oh. Ok Thanks Richard so much. I will merge V6 after I finished regression. Previously, I didn't understand whether you want V7 (I tried use google translator to translate your words :) Now I understand you are happy with V6. Thanks. juzhe.zh...@rivai.ai From: Richard Sandiford Date:

Re: Re: [PATCH V6] VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer

2023-06-23 Thread
Hi, Richard. I saw Berhard comments. Should I send a V7 to fuse 2 if (final_len) together which is the final version to be merged? Thanks. juzhe.zh...@rivai.ai From: Richard Sandiford Date: 2023-06-23 16:08 To: juzhe.zhong CC: gcc-patches; rguenther; rep.dot.nop Subject: Re: [PATCH V6]

Re: Re: [PATCH V5] VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer

2023-06-23 Thread
Thanks Richi so much. I am gonna wait for Richard's final approve for V6 for : https://gcc.gnu.org/pipermail/gcc-patches/2023-June/622560.html which has some small fixes for his comments on V5. And Bootstrap has passed, regression is running. I am gonna wait for regression too. Thanks.

Re: Re: [PATCH V5] VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer

2023-06-22 Thread
Thanks Richard! Will send V6 patch to address your comments. juzhe.zh...@rivai.ai From: Richard Sandiford Date: 2023-06-23 02:27 To: juzhe.zhong CC: gcc-patches; rguenther Subject: Re: [PATCH V5] VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer juzhe.zh...@rivai.ai writes: > From: Ju-Zhe

Re: Re: [PATCH V5] VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer

2023-06-22 Thread
Thanks so much. Will send V6 patch. juzhe.zh...@rivai.ai From: Bernhard Reutner-Fischer Date: 2023-06-23 00:05 To: juzhe.zhong CC: rep.dot.nop; gcc-patches; rguenther; richard.sandiford Subject: Re: [PATCH V5] VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer On Thu, 22 Jun 2023 21:53:48

Re: Re: [PATCH V4] VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer

2023-06-22 Thread
Hi, Richi. Thanks so much for the review && comments. I have sent V5 patch: https://gcc.gnu.org/pipermail/gcc-patches/2023-June/622539.html with addressing your comments. Would you mind taking a look at it? This only difference between V5 and V4 is optabs-tree.cc Thanks. juzhe.zh...@rivai.ai

Re: Re: [PATCH] RISC-V: Split VF iterators for Zvfh(min).

2023-06-22 Thread
Oh. I see. I think I am wrong. Sorry for that :). load/store are using 'V' iterators. This patch looks reasonable to me now. Thanks for catching this. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-22 21:32 To: 钟居哲; gcc-patches; palmer; kito.cheng; pan2.li; Jeff Law CC: rdapp.gcc

Re: Re: [PATCH] RISC-V: Split VF iterators for Zvfh(min).

2023-06-22 Thread
lse/vsse. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-22 21:22 To: 钟居哲; gcc-patches; palmer; kito.cheng; pan2.li; Jeff Law CC: rdapp.gcc Subject: Re: [PATCH] RISC-V: Split VF iterators for Zvfh(min). > You change "VF" constraint as "TARGET_ZVFH" which is incorrec

Re: [PATCH] RISC-V: Split VF iterators for Zvfh(min).

2023-06-22 Thread
You change "VF" constraint as "TARGET_ZVFH" which is incorrect since we a lot of instructions are valid in "TARGET_ZVFHMIN" in vector.md but you disabled them in this patch. You disabled them unexpectedly. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-22 21:03 To: gcc-patches; palmer;

Re: Re: [PATCH] RISC-V: Support RVV floating-point ternary auto-vectorization

2023-06-21 Thread
perands[4]); +DONE; + } + [(set_attr "type" "vfmuladd") + (set_attr "mode" "")]) It seems to work and all test have passed. Thanks for pointing this out. I have sent V3: https://gcc.gnu.org/pipermail/gcc-patches/2023-June/622481.html If this implem

Re: Re: [PATCH] RISC-V: Support RVV floating-point ternary auto-vectorization

2023-06-21 Thread
[] = {operands[0], operands[1], operands[2], operands[3], operands[0]}; riscv_vector::emit_vlmax_fp_ternary_insn (code_for_pred_mul (MINUS, mode), riscv_vector::RVV_TERNOP, ops, operands[4]); DONE; } [(set_attr "type" "vfmuladd") (set_attr "mo

Re: Re: [PATCH] RISC-V: Support RVV floating-point ternary auto-vectorization

2023-06-21 Thread
I failed to make Pmode of the of operand. I have tried the following clobber (match_dup_4) But it causes to many issues. I do many tries turns out only the current solution can work. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-21 23:15 To: Juzhe-Zhong; gcc-patches CC: kito.cheng;

Re: [PATCH v2] RISC-V: Implement autovec copysign.

2023-06-21 Thread
LGTM. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-21 20:57 To: juzhe.zh...@rivai.ai; gcc-patches; palmer; kito.cheng; jeffreyalaw CC: rdapp.gcc Subject: [PATCH v2] RISC-V: Implement autovec copysign. Hi, changes from v1: - Removed UNSPEC_VNCOPYSIGN - Adjusted xorsign test

Re: [PATCH] RISC-V: Implement autovec copysign.

2023-06-20 Thread
You should remove all "unspec" related of "n" ncopysign including riscv-vector-builtins-bases.cc vector.md/ vector-iterators.md juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-20 20:47 To: gcc-patches; palmer; Kito Cheng; juzhe.zh...@rivai.ai; jeffreyalaw CC: rdapp.gcc Subject: [PATCH]

Re: Re: [PATCH] VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer

2023-06-20 Thread
Thanks Richi's comments. I have sent a new patch with addressing your comments. I am so sorry V2 patch just broke on boostrap. I sent the V3 patch that fixed it. Thanks. juzhe.zh...@rivai.ai From: Richard Biener Date: 2023-06-20 20:18 To: Ju-Zhe Zhong CC: gcc-patches; richard.sandiford

Re: Re: [PATCH] RISC-V: Fix fails of testcases

2023-06-19 Thread
>> Presumably the target selector in the dg-do ensures we only build/run >> these on the appropriate targets now and we don't need explicitly -march >> arguments? Yes. >> Assuming that's correct, this is fine for the trunk. Thanks. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-20 07:13

Re: [PATCH] VECT: Apply LEN_MASK_{LOAD,STORE} into vectorizer

2023-06-19 Thread
Hi, this patch refactors the codes in tree-vect-stmts.cc in case of gimple IR generation. I realize the codes change too much and I am not sure whether you are happy with it. Originally, the codes are like: if (final_mask) { generate IFN_MASK_LOAD... } else if (loop_len) { generate

Re: Re: [PATCH] RISC-V: Add VLS modes for GNU vectors

2023-06-19 Thread
Hi, Jeff. Thanks for comment. I add INCLUDE_ALGORITHM since I use std:min. I failed to compile when I didn't add INCLUDE_ALGORITHM. Is INCLUDE_ALGORITHM expensive that you don't want it? juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-20 02:25 To: Juzhe-Zhong; gcc-patches CC: kito.cheng;

Re: [PATCH v1] RISC-V: Bugfix for RVV widenning reduction in ZVE32/64

2023-06-18 Thread
Add target into changelog: PR target/110299 Otherwise, LGTM. juzhe.zh...@rivai.ai From: pan2.li Date: 2023-06-18 23:13 To: gcc-patches CC: juzhe.zhong; rdapp.gcc; jeffreyalaw; pan2.li; yanzhang.wang; kito.cheng Subject: [PATCH v1] RISC-V: Bugfix for RVV widenning reduction in ZVE32/64 From:

Re: [PATCH] RISC-V: Add tuple vector mode psABI checking and simplify code

2023-06-18 Thread
Thanks for cleaning up codes for future's ABI support patch. Let's wait for Jeff or Robin comments. Thanks. juzhe.zh...@rivai.ai From: Lehua Ding Date: 2023-06-18 19:41 To: gcc-patches CC: juzhe.zhong; yanzhang.wang; kito.cheng; palmer; jeffreyalaw Subject: [PATCH] RISC-V: Add tuple vector

Re: [PATCH v2] RISC-V: Bugfix for RVV float reduction in ZVE32/64

2023-06-18 Thread
Thanks for fixing it for me. LGTM now. juzhe.zh...@rivai.ai From: pan2.li Date: 2023-06-18 10:57 To: gcc-patches CC: juzhe.zhong; rdapp.gcc; jeffreyalaw; pan2.li; yanzhang.wang; kito.cheng Subject: [PATCH v2] RISC-V: Bugfix for RVV float reduction in ZVE32/64 From: Pan Li The rvv integer

Re: [PATCH V7] VECT: Support LEN_MASK_{LOAD,STORE} ifn && optabs

2023-06-17 Thread
Bootstrap and Regreesion on X86 passed. Jeff and Richi approved. Let's wait for Richard S final approve. Thanks. juzhe.zh...@rivai.ai From: juzhe.zhong Date: 2023-06-18 06:53 To: gcc-patches CC: jeffreyalaw; rguenther; richard.sandiford; Ju-Zhe Zhong; Robin Dapp Subject: [PATCH V7] VECT:

Re: [PATCH v1] RISC-V: Bugfix for RVV float reduction in ZVE32/64

2023-06-17 Thread
I think vlmul1, vlmul1_zve64, vlmul1_zve32 these 3 attributes are no longer used. Could you remove it ? juzhe.zh...@rivai.ai From: pan2.li Date: 2023-06-17 22:23 To: gcc-patches CC: juzhe.zhong; rdapp.gcc; jeffreyalaw; pan2.li; yanzhang.wang; kito.cheng Subject: [PATCH v1] RISC-V: Bugfix for

Re: Re: [PATCH V6] VECT: Support LEN_MASK_{LOAD,STORE} ifn && optabs

2023-06-17 Thread
Hi, Jeff. >> That first sentence is a bit difficult to parse. Perhaps break it into >> two sentences. Something like this? >> Perform a masked load from the memory location pointed to be operand 1 >> into register operand 0. operand 2 + operand 4 elements are loaded from >> memory and other

Re: [PATCH v2] RISC-V: Implement vec_set and vec_extract.

2023-06-16 Thread
LGTM juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-16 21:41 To: Jeff Law; gcc-patches; palmer; Kito Cheng; juzhe.zh...@rivai.ai CC: rdapp.gcc Subject: [PATCH v2] RISC-V: Implement vec_set and vec_extract. Hi, with the recent changes that we also pass the return value via stack this is

Re: [PATCH v2] RISC-V: Add autovec FP unary operations.

2023-06-15 Thread
Add unary testcase of fp16 into zvfhmin-1.c (make sure they don't ICE and no vectorize when -march=rv64gc_zvfhmin). Make sure we won't do wrong in case of ZVFHMIN. /* We can't enable FP16 NEG/PLUS/MINUS/MULT/DIV auto-vectorization when -march="*zvfhmin*". */ /* { dg-final {

Re: Re: [PATCH] RISC-V: Add autovec FP unary operations.

2023-06-14 Thread
VNx2DF "TARGET_VECTOR_ELEN_FP_64") (VNx4DF "TARGET_VECTOR_ELEN_FP_64") (VNx8DF "TARGET_VECTOR_ELEN_FP_64") (VNx16DF "TARGET_VECTOR_ELEN_FP_64 && TARGET_MIN_VLEN >= 128") ]) I think we should add VF_AUTO change iterator into using TARGET_

Re: Re: [PATCH] RISC-V: Add autovec FP unary operations.

2023-06-14 Thread
Hi, Jeff. Thanks for quick approval. When I reviewed the patch: (define_expand "2" [(set (match_operand:VF 0 "register_operand") (any_float_unop_nofrm:VF (match_operand:VF 1 "register_operand")))] "TARGET_VECTOR" { insn_code icode = code_for_pred (, mode);

Re: [PATCH] RISC-V: Add sign-extending variants for vmv.x.s.

2023-06-12 Thread
Change +(define_insn "@pred_extract_first_sextdi" into (define_insn "*pred_extract_first_sextdi" Change +(define_insn "@pred_extract_first_sextsi" into (define_insn "*pred_extract_first_sextsi" I don't think we will call combine pattern in vector-opt.md in the future. Use "*" instead of "@"

Re: [PATCH] RISC-V: Implement vec_set and vec_extract.

2023-06-12 Thread
+ /* If the slide offset fits into 5 bits we can + use the immediate variant instead of the register variant. + The expander's operand[2] is ops[3] here. */ + if (!satisfies_constraint_K (ops[3])) +ops[3] = force_reg (Pmode, ops[3]); I don't think we need this. maybe_expand_insn

Re: Re: [PATCH] RISC-V: Enhance RVV VLA SLP auto-vectorization with decompress operation

2023-06-12 Thread
No. Such pattern you pointed I already supported. The operation is very simple. Just use a single vmv.v.i but larger SEW is enough. No need vzext. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-12 22:43 To: juzhe.zhong; gcc-patches CC: rdapp.gcc; kito.cheng; kito.cheng; palmer; palmer;

Re: [PATCH v1] RISC-V: Support RVV FP16 MISC vlmul ext intrinsic API

2023-06-11 Thread
LGTM juzhe.zh...@rivai.ai From: pan2.li Date: 2023-06-11 08:33 To: gcc-patches CC: juzhe.zhong; rdapp.gcc; jeffreyalaw; pan2.li; yanzhang.wang; kito.cheng Subject: [PATCH v1] RISC-V: Support RVV FP16 MISC vlmul ext intrinsic API From: Pan Li This patch support the intrinsic API of FP16

Re: Re: [PATCH] RISC-V: Fix V_WHOLE && V_FRACT iterator requirement

2023-06-09 Thread
+ (VNx16QI "TARGET_MIN_VLEN <= 128") + (VNx32QI "TARGET_MIN_VLEN <= 256") + (VNx64QI "TARGET_MIN_VLEN >= 64 && TARGET_MIN_VLEN <= 512") + (VNx128QI "TARGET_MIN_VLEN >= 128 && TARGET_MIN_VLEN <= 1024") This not correct, we always use VNx16QI as LMUL = m1 for min_vlen >= 128. Requirement of

Re: Re: [PATCH V2] RISC-V: Rework Phase 5 && Phase 6 of VSETVL PASS

2023-06-09 Thread
Ok. Thanks. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-09 23:09 To: 钟居哲; gcc-patches CC: kito.cheng; kito.cheng; palmer; palmer; rdapp.gcc; pan2.li Subject: Re: [PATCH V2] RISC-V: Rework Phase 5 && Phase 6 of VSETVL PASS On 6/9/23 08:58, 钟居哲 wrote: >>> I'd probabl

Re: Re: [PATCH V2] RISC-V: Rework Phase 5 && Phase 6 of VSETVL PASS

2023-06-09 Thread
>> I'd probably adjust the name as well. There's an important exception to >> returning the first vsetvl -- you stop the search if you encounter a >> user RVV instruction. Could you give me a function name of this? like: get_first_vsetvl_prior_all_rvv_insns is it ok? But I think the name is too

Re: Re: [PATCH V2] RISC-V: Rework Phase 5 && Phase 6 of VSETVL PASS

2023-06-09 Thread
Thanks Jeff. Actually, RTL_SSA framework is a very usefull tool very similar the framwork of SDnode of LLVM. which is the framework I am familar with. I just realize that the 2nd build of RTL_SSA causes bugs that's why I change it into data-flow. Address all comments will send V3 soon. Thanks.

Re: Re: [PATCH V6] VECT: Add SELECT_VL support

2023-06-09 Thread
Ok. Thanks Jeff. juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-06-09 22:42 To: juzhe.zh...@rivai.ai; rguenther CC: gcc-patches; richard.sandiford Subject: Re: [PATCH V6] VECT: Add SELECT_VL support On 6/9/23 05:32, juzhe.zh...@rivai.ai wrote: > Thanks a lot Richi. > > Even though last

Re: Re: [PATCH] RISC-V: Fix V_WHOLE && V_FRACT iterator requirement

2023-06-09 Thread
Ok. If you have done this plz go ahead. I think it shouldn't be with vec_set patch. Instead, it obviously should be the separate patch. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-09 22:37 To: juzhe.zhong; gcc-patches CC: rdapp.gcc; kito.cheng; palmer; jeffreyalaw Subject: Re: [PATCH]

Re: Re: [PATCH V3] VECT: Add SELECT_VL support

2023-06-07 Thread
Hi, Richi. I have fixed data reference pointer part following your comments Could you take a look at it ? https://gcc.gnu.org/pipermail/gcc-patches/2023-June/620916.html Thanks. juzhe.zh...@rivai.ai From: Richard Biener Date: 2023-06-07 19:04 To: juzhe.zh...@rivai.ai CC: gcc-patches;

Re: [PATCH v1] RISC-V: Refactor ZVFHMIN to separated iterator and pattern

2023-06-06 Thread
+(define_mode_iterator V_ZVFHMIN_SF [ + (VNx1SF "TARGET_VECTOR_ELEN_FP_32 && (TARGET_ZVFH || TARGET_ZVFHMIN) && TARGET_MIN_VLEN < 128") + (VNx2SF "TARGET_VECTOR_ELEN_FP_32 && (TARGET_ZVFH || TARGET_ZVFHMIN)") + (VNx4SF "TARGET_VECTOR_ELEN_FP_32 && (TARGET_ZVFH || TARGET_ZVFHMIN)") + (VNx8SF

Re: Re: [PATCH] RISC-V: Add RVV vwmacc/vwmaccu/vwmaccsu combine lowering optmization

2023-06-06 Thread
Thanks for catching this. I still send V4 patch :) since I want to make kito && Jeff see the latest version. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-06 19:58 To: juzhe.zhong; gcc-patches CC: rdapp.gcc; kito.cheng; kito.cheng; palmer; palmer; jeffreyalaw; pan2.li Subject: Re:

Re: [PATCH] RISC-V: Enable SELECT_VL for RVV

2023-06-06 Thread
Oh。 Sorry my mistake. Forget about this patch since SELECT_VL is not merged into middle-end yet. juzhe.zh...@rivai.ai From: juzhe.zhong Date: 2023-06-06 19:46 To: gcc-patches CC: kito.cheng; palmer; rdapp.gcc; jeffreyalaw; Juzhe-Zhong Subject: [PATCH] RISC-V: Enable SELECT_VL for RVV From:

Re: Re: [PATCH] RISC-V: Add RVV vwmacc/vwmaccu/vwmaccsu combine lowering optmization

2023-06-06 Thread
. You can take a look at ARM SVE. There are also many combine "unspecs" patterns. juzhe.zh...@rivai.ai From: Robin Dapp Date: 2023-06-06 19:42 To: 钟居哲; gcc-patches CC: rdapp.gcc; kito.cheng; kito.cheng; palmer; palmer; Jeff Law; pan2.li Subject: Re: [PATCH] RISC-V: Add RVV vwmacc/vwma

Re: Re: [PATCH] RISC-V: Add RVV vwmacc/vwmaccu/vwmaccsu combine lowering optmization

2023-06-06 Thread
Hi, Robin. >> Here and in the following similar cases you could just use operands >>instead of creating a new rtx array. Ok. Thanks for catching this. >> Similar example as before would be nice or just "this helps combine >> match ...". Apart from that I just wondered where/how these

Re: Re: [PATCH] VECT: Add SELECT_VL support

2023-06-04 Thread
Hi, Richard. Thanks for the comments. >> I think it would be worth saying in more detail why we only use SELECT_VL >> for single rgroups. I assume the reason is to simplify the pointer IV >> updates. Is that right? Yes. >> The difficulty is >> that an rgroup that controls N vector loads (say)

Re: [PATCH] RISC-V: Support RVV FP16 ZVFHMIN intrinsic API

2023-06-04 Thread
LGTM. juzhe.zh...@rivai.ai From: pan2.li Date: 2023-06-04 15:19 To: gcc-patches CC: juzhe.zhong; kito.cheng; pan2.li; yanzhang.wang Subject: [PATCH] RISC-V: Support RVV FP16 ZVFHMIN intrinsic API From: Pan Li This patch support the 2 intrinsic API of FP16 ZVFHMIN extension. Aka SEW=16 for

Re: [PATCH] RISC-V: Support RVV zvfh{min} vfloat16*_t mov and spill

2023-06-03 Thread
LGTM. Hope FP16 vector can be committed soon. Since I would like to wait for FP16 vector and then start to support FP16 FP32 FP64 autovec together. Thanks. juzhe.zh...@rivai.ai From: pan2.li Date: 2023-06-03 22:37 To: gcc-patches CC: juzhe.zhong; kito.cheng; pan2.li; yanzhang.wang Subject:

Re: Re: [PATCH] RISC-V: Add vwadd/vwsub/vwmul/vwmulsu.vv lowering optimizaiton for RVV auto-vectorization

2023-05-31 Thread
I have sent V2 withing adding commen: https://gcc.gnu.org/pipermail/gcc-patches/2023-May/620243.html Could you take a look at it? juzhe.zh...@rivai.ai From: Jeff Law Date: 2023-05-31 20:58 To: Robin Dapp; juzhe.zhong; gcc-patches CC: kito.cheng; kito.cheng; palmer; palmer Subject: Re:

<    1   2   3   4   5   >