Re: Re: [PATCH] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-09 Thread Richard Biener via Gcc-patches
On Wed, 9 Aug 2023, juzhe.zh...@rivai.ai wrote: > Hi, Richi. > > >> that should be > > >> || (!LOOP_VINFO_FULLY_MASKED_P (loop_vinfo) > >> && !LOOP_VINFO_FULLY_WITH_LENGTH_P (loop_vinfo)) > > >> I think. It seems to imply that SLP isn't supported with > >> masking/lengthing. > > Oh, y

[PATCH] Handle in-order reductions when SLP vectorizing non-loops

2023-08-09 Thread Richard Biener via Gcc-patches
The following teaches the non-loop reduction vectorization code to handle non-associatable reductions. Using the existing FOLD_LEFT_PLUS internal functions might be possible but I'd have to convince myself that +0.0 + x[0] is a safe extra operation in ever rounding mode (I also have no way to test

Re: Re: [PATCH] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-09 Thread Richard Biener via Gcc-patches
On Wed, 9 Aug 2023, ??? wrote: > Hi, Richard. > > >> I'm a bit behind of email, but why isn't BIT_FIELD_REF enough for > >> the case that the patch is handling? It seems that: > > >> .EXTRACT_LAST (len, vec) > > >> is equivalent to: > > >> vec[len - 1] > > >> I think eventually there'll

Re: [PATCH 3/12] phiopt: Fix phiopt ICE on vops [PR102989]

2023-08-09 Thread Richard Biener via Gcc-patches
On Wed, 9 Aug 2023, Jakub Jelinek wrote: > On Wed, Aug 09, 2023 at 01:06:22PM -0700, Andrew Pinski wrote: > > That was my next thought, returning NULL from > > single_non_singleton_phi_for_edges if it would return a virtual OP > > might be better even. > > Either version of these patches are ok wi

Re: [PATCH 0/12] GCC _BitInt support [PR102989]

2023-08-09 Thread Richard Biener via Gcc-patches
On Wed, 9 Aug 2023, Joseph Myers wrote: > On Wed, 9 Aug 2023, Jakub Jelinek via Gcc-patches wrote: > > > - _Complex _BitInt(N) isn't supported; again mainly because none of the > > psABIs > > mention how those should be passed/returned; in a limited way they are > > supported internally beca

Re: [PATCH] VR-VALUES: Simplify comparison using range pairs

2023-08-10 Thread Richard Biener via Gcc-patches
On Wed, Aug 9, 2023 at 6:16 PM Andrew Pinski via Gcc-patches wrote: > > If `A` has a range of `[0,0][100,INF]` and the comparison > of `A < 50`. This should be optimized to `A <= 0` (which then > will be optimized to just `A == 0`). > This patch implement this via a new function which sees if > th

Re: [PATCH 1/12] expr: Small optimization [PR102989]

2023-08-10 Thread Richard Biener via Gcc-patches
On Wed, 9 Aug 2023, Jakub Jelinek wrote: > Hi! > > Small optimization to avoid testing modifier multiple times. OK. Richard. > 2023-08-09 Jakub Jelinek > > PR c/102989 > * expr.cc (expand_expr_real_1) : Add an early return for > EXPAND_WRITE or EXPAND_MEMORY modifiers to

Re: [PATCH 2/12] lto-streamer-in: Adjust assert [PR102989]

2023-08-10 Thread Richard Biener via Gcc-patches
On Wed, 9 Aug 2023, Jakub Jelinek wrote: > Hi! > > With _BitInt(575) or any other _BitInt(513) or larger constants we can > run into this assertion. MAX_BITSIZE_MODE_ANY_INT is just a value from > which WIDE_INT_MAX_PRECISION is derived. OK. Richard. > 2023-08-09 Jakub Jelinek > > P

Re: [PATCH] Fix PR 110954: wrong code with cmp | !cmp

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, Aug 10, 2023 at 2:21 AM Andrew Pinski via Gcc-patches wrote: > > This was an oversight on my part not realizing that > comparisons in generic can have a non-boolean type. > This means if we have `(f < 0) | !(f < 0)` we would > optimize this to -1 rather than just 1. > This patch just adds

Re: [PATCH] Support -m[no-]gather -m[no-]scatter to enable/disable vectorization for all gather/scatter instructions.

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, Aug 10, 2023 at 3:13 AM liuhongt wrote: > > Currently we have 3 different independent tunes for gather > "use_gather,use_gather_2parts,use_gather_4parts", > similar for scatter, there're > "use_scatter,use_scatter_2parts,use_scatter_4parts" > > The patch support 2 standardizing options to

Re: [PATCH V2 0/3] RISC-V: Add an experimental vector calling convention

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, Aug 10, 2023 at 9:04 AM Lehua Ding wrote: > > Hi RISC-V folks, > > This patch implement the proposal of RISC-V vector calling convention[1] and > this feature can be enabled by `--param=riscv-vector-abi` option. Currently, > all vector type arguments and return values are pass by reference

Re: [PATCH] Support -m[no-]gather -m[no-]scatter to enable/disable vectorization for all gather/scatter instructions.

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, Aug 10, 2023 at 9:42 AM Uros Bizjak wrote: > > On Thu, Aug 10, 2023 at 9:40 AM Richard Biener > wrote: > > > > On Thu, Aug 10, 2023 at 3:13 AM liuhongt wrote: > > > > > > Currently we have 3 different independent tunes for gather > > > "use_gather,use_gather_2parts,use_gather_4parts", >

Re: [PATCH V2] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, 10 Aug 2023, juzhe.zh...@rivai.ai wrote: > From: Ju-Zhe Zhong > > Hi, Richard and Richi. > > This patch add support live vectorization by VEC_EXTRACT for LEN loop control. > > Consider this following case: > > #include > > #define EXTRACT_LAST(TYPE)\ > TYPE __a

Re: Re: [PATCH V2] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, 10 Aug 2023, juzhe.zh...@rivai.ai wrote: > >> I guess as a temporary thing your approach is OK but we shouldn't > >> add these as part of new code - it's supposed to handle legacy > >> cases that we didn't fixup yet. > > Do you mean we need to fix LC SSA PHI flow so that we don't need to

Re: [PATCH] Support -m[no-]gather -m[no-]scatter to enable/disable vectorization for all gather/scatter instructions.

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, Aug 10, 2023 at 9:55 AM Hongtao Liu wrote: > > On Thu, Aug 10, 2023 at 3:49 PM Richard Biener via Gcc-patches > wrote: > > > > On Thu, Aug 10, 2023 at 9:42 AM Uros Bizjak wrote: > > > > > > On Thu, Aug 10, 2023 at 9:40 AM Richard Biener > > &

Re: [PATCH] Support -m[no-]gather -m[no-]scatter to enable/disable vectorization for all gather/scatter instructions.

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, Aug 10, 2023 at 11:16 AM Hongtao Liu wrote: > > On Thu, Aug 10, 2023 at 4:07 PM Hongtao Liu wrote: > > > > On Thu, Aug 10, 2023 at 3:55 PM Hongtao Liu wrote: > > > > > > On Thu, Aug 10, 2023 at 3:49 PM Richard Biener via Gcc-patches > > > w

Re: Re: [PATCH V2] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, 10 Aug 2023, juzhe.zh...@rivai.ai wrote: > Hi, Richi. > > >> What inserts the required LC SSA PHI in that case? > > Here is the flow how GCC insert LC SSA PHI flow for ARM SVE. > You can see this following 'vect' dump details: > https://godbolt.org/z/564o87oz3 > > You can see this foll

[PATCH] Make ISEL used internal functions const/nothrow where appropriate

2023-08-10 Thread Richard Biener via Gcc-patches
Both .VEC_SET and .VEC_EXTACT and the various .VCOND internal functions are operating on registers only and they are not supposed to raise any exceptions. The following makes them const/nothrow. I've verified this avoids useless SSA updates in ISEL. Bootstrap & regtest running on x86_64-unknown-

Re: [PATCH V2] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, 10 Aug 2023, Robin Dapp wrote: > > Hmm, I think VEC_EXTRACT and VEC_SET should be ECF_CONST. Maybe the > > GIMPLE ISEL > > comments do not match the implementation, but then that should be fixed? > > > > /* Expand all ARRAY_REF(VIEW_CONVERT_EXPR) gimple assignments into calls > > to >

[PATCH] tree-optimization/110963 - more PRE when optimizing for size

2023-08-10 Thread Richard Biener via Gcc-patches
The following adjusts the heuristic when we perform PHI insertion during GIMPLE PRE from requiring at least one edge that is supposed to be optimized for speed to also doing insertion when the expression is available on all edges (but possibly with different value) and we'd at most have one copy fr

Re: Intel AVX10.1 Compiler Design and Support

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, Aug 10, 2023 at 2:37 PM Phoebe Wang via Gcc-patches wrote: > > > Changing ABIs like that for existing code that has worked for some time > on > > existing hardware is a bad idea. > > I agree, so Proposal 3 is the last choice. > > The target of the proposals is to solve the ABI incompatib

Re: Intel AVX10.1 Compiler Design and Support

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, Aug 10, 2023 at 3:31 PM Jan Beulich wrote: > > On 10.08.2023 15:12, Phoebe Wang wrote: > >> The psABI should have some simple rule covering all of the above I think. > > > > psABI has a rule for the case doesn't mean the rule is a well defined ABI > > in practice. A well defined ABI shoul

Re: [PATCH] VR-VALUES: Simplify comparison using range pairs

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, Aug 10, 2023 at 3:44 PM Richard Sandiford wrote: > > Richard Biener via Gcc-patches writes: > > On Wed, Aug 9, 2023 at 6:16 PM Andrew Pinski via Gcc-patches > > wrote: > >> > >> If `A` has a range of `[0,0][100,INF]` and the comparison > >>

Re: [PATCH] tree-optimization/110963 - more PRE when optimizing for size

2023-08-10 Thread Richard Biener via Gcc-patches
> Am 10.08.2023 um 17:01 schrieb Jeff Law via Gcc-patches > : > >  > >> On 8/10/23 06:41, Richard Biener via Gcc-patches wrote: >> The following adjusts the heuristic when we perform PHI insertion >> during GIMPLE PRE from requiring at least one edge that i

Re: [RFC] GCC Security policy

2023-08-10 Thread Richard Biener via Gcc-patches
> Am 10.08.2023 um 20:28 schrieb Richard Sandiford : > > Siddhesh Poyarekar writes: >> On 2023-08-08 10:30, Siddhesh Poyarekar wrote: Do you have a suggestion for the language to address libgcc, libstdc++, etc. and libiberty, libbacktrace, etc.? >>> >>> I'll work on this a bit and

Re: [PATCH] config: Fix host -rdynamic detection for build != host != target

2023-08-10 Thread Richard Biener via Gcc-patches
On Thu, Aug 10, 2023 at 11:31 PM Joseph Myers wrote: > > The GCC_ENABLE_PLUGINS configure logic for detecting whether -rdynamic > is necessary and supported uses an appropriate objdump for $host > binaries (running on $build) in cases where $host is $build or > $target. > > However, it is missing

Re: [PATCHv2] Fix PR 110954: wrong code with cmp | !cmp

2023-08-10 Thread Richard Biener via Gcc-patches
On Fri, Aug 11, 2023 at 12:52 AM Andrew Pinski via Gcc-patches wrote: > > This was an oversight on my part forgetting that > cmp will might have a different true value than all ones > but will have a value of 1 in most cases. > This means if we have `(f < 0) | !(f < 0)` we would > optimize this to

Re: [PATCH V3] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-11 Thread Richard Biener via Gcc-patches
On Fri, 11 Aug 2023, juzhe.zh...@rivai.ai wrote: > From: Ju-Zhe Zhong > > Hi, Richard and Richi. > > This patch add support live vectorization by VEC_EXTRACT for LEN loop control. > > Consider this following case: > > #include > > #define EXTRACT_LAST(TYPE)\ > TYPE __a

Re: [PATCH] match.pd, v2: Implement missed optimization ((x ^ y) & z) | x -> (z & y) | x [PR109938]

2023-08-11 Thread Richard Biener via Gcc-patches
On Thu, Aug 10, 2023 at 5:43 PM Jakub Jelinek wrote: > > Hi! > > On Thu, Aug 10, 2023 at 12:28:24PM +0200, Jakub Jelinek via Gcc-patches wrote: > > On Tue, Aug 08, 2023 at 03:18:51PM +0200, Richard Biener via Gcc-patches > > wrote: > > > On Fri, Aug 4, 2023 at 1

Re: [PATCH 1/2] PHI-OPT [PR 110984]: Add support for NE_EXPR/EQ_EXPR with casts to spaceship_replacement

2023-08-11 Thread Richard Biener via Gcc-patches
On Fri, Aug 11, 2023 at 11:17 AM Andrew Pinski via Gcc-patches wrote: > > So with my next VRP patch, VRP causes: > ``` > # c$_M_value_18 = PHI <-1(3), 0(2), 1(4)> > _11 = (unsigned int) c$_M_value_18; > _16 = _11 <= 1; > ``` > To be changed to: > ``` > # c$_M_value_18 = PHI <-1(3), 0(2), 1

Re: [PATCH 2/2] VR-VALUES: Rewrite test_for_singularity using range_op_handler

2023-08-11 Thread Richard Biener via Gcc-patches
On Fri, Aug 11, 2023 at 11:17 AM Andrew Pinski via Gcc-patches wrote: > > So it turns out there was a simplier way of starting to > improve VRP to start to fix PR 110131, PR 108360, and PR 108397. > That was rewrite test_for_singularity to use range_op_handler > and Value_Range. > > This patch imp

Re: Re: [PATCH V3] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-11 Thread Richard Biener via Gcc-patches
On Fri, 11 Aug 2023, juzhe.zh...@rivai.ai wrote: > Hi, Richi. > > >> So how can we resolve the issue when a non-VL operation like > >> .VEC_EXTRACT is used for _len support? > > Do you mean non-VL extract last operation (I am sorry that not sure whether I > understand your question correctly)?

Re: [PATCH] VECT: Add vec_mask_len_{load_lanes,store_lanes} patterns

2023-08-11 Thread Richard Biener via Gcc-patches
On Fri, 11 Aug 2023, Juzhe-Zhong wrote: > This patch is add vec_mask_len_{load_lanes,store_stores} autovectorization > patterns. > > Here we want to support this following autovectorization: > > #include > void > foo (int8_t *__restrict a, > int8_t *__restrict b, > int8_t *__restrict cond, >

[PATCH] tree-optimization/110979 - fold-left reduction and partial vectors

2023-08-11 Thread Richard Biener via Gcc-patches
When we vectorize fold-left reductions with partial vectors but no target operation available we use a vector conditional to force excess elements to zero. But that doesn't correctly preserve the sign of zero. The following patch disables partial vector support in that case. Bootstrap and regtes

[PATCH] Improve BB vectorization opt-info

2023-08-11 Thread Richard Biener via Gcc-patches
The following makes us more correctly print the used vector size when doing BB vectorization and also print all involved SLP graph roots, not just the random one we ended up picking as leader. In particular the last bit improves diffing opt-info between different GCC revs but it also requires some

Re: Re: [PATCH V3] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-11 Thread Richard Biener via Gcc-patches
On Fri, 11 Aug 2023, juzhe.zh...@rivai.ai wrote: > Hi, Richi. > > > 1. Target is using loop MASK as the partial vector loop control. > >> I don't think it checks for this? > > I am not sure whether I understand EXTRACT_LAST correctly. > But if target doesn't use loop MASK for partial vector loop

Re: [PATCH] tree-optimization/110979 - fold-left reduction and partial vectors

2023-08-11 Thread Richard Biener via Gcc-patches
On Fri, 11 Aug 2023, Alexander Monakov wrote: > > On Fri, 11 Aug 2023, Richard Biener wrote: > > > When we vectorize fold-left reductions with partial vectors but > > no target operation available we use a vector conditional to force > > excess elements to zero. But that doesn't correctly prese

Re: [PATCH] VECT: Fix ICE on MASK_LEN_{LOAD,STORE} when no LEN recorded[PR110989]

2023-08-11 Thread Richard Biener via Gcc-patches
On Fri, 11 Aug 2023, Juzhe-Zhong wrote: > This patch fixes bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110989 > > This ICE is caused because of this situation: > > mask__49.21_99 = vect__17.19_96 == { 0.0, ... }; > ... > vect__6.24_107 = .MASK_LEN_LOAD (vectp.22_105, 32B, mask__49.21_99,

Re: Re: [PATCH V3] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-11 Thread Richard Biener via Gcc-patches
On Fri, 11 Aug 2023, juzhe.zh...@rivai.ai wrote: > Hi, Richi. > > >> check here the target supports VEC_EXTRACT > >> else set LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P to false with a > >> diagnostic. > > I am wondering target has VEC_EXTRACT but no EXTRACT_LAST, and such > target is using MASK as t

[PATCH][v2] tree-optimization/110979 - fold-left reduction and partial vectors

2023-08-11 Thread Richard Biener via Gcc-patches
When we vectorize fold-left reductions with partial vectors but no target operation available we use a vector conditional to force excess elements to zero. But that doesn't correctly preserve the sign of zero. The following patch disables partial vector support when we have to do that and also ne

Re: [PATCH V2] VECT: Fix ICE on MASK_LEN_{LOAD,STORE} when no LEN recorded[PR110989]

2023-08-11 Thread Richard Biener via Gcc-patches
On Fri, 11 Aug 2023, Juzhe-Zhong wrote: > This ICE is caused because of this situation: > > mask__49.21_99 = vect__17.19_96 == { 0.0, ... }; > ... > vect__6.24_107 = .MASK_LEN_LOAD (vectp.22_105, 32B, mask__49.21_99, > POLY_INT_CST [2, 2], 0); > > The MASK_LEN_LOAD is using real MASK which is p

Re: [PATCH V4] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-13 Thread Richard Biener via Gcc-patches
On Fri, 11 Aug 2023, juzhe.zh...@rivai.ai wrote: > From: Ju-Zhe Zhong > > Hi, Richard and Richi. > > This patch add support live vectorization by VEC_EXTRACT for LEN loop control. OK. Thanks, Richard. > Consider this following case: > > #include > > #define EXTRACT_LAST(TYPE)

[PATCH] Fix print_loop_info ICE

2023-08-14 Thread Richard Biener via Gcc-patches
It ICEs when invoked via debug_loops and dump_file clear. Pushed as obvious. * tree-cfg.cc (print_loop_info): Dump to 'file', not 'dump_file'. --- gcc/tree-cfg.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/tree-cfg.cc b/gcc/tree-cfg.cc index ab1f8067c54..fae8

Re: [PATCH V4] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-14 Thread Richard Biener via Gcc-patches
On Mon, 14 Aug 2023, Robin Dapp wrote: > Hi Kewen, > > > I did a bootstrapping and regression testing on Power10 (LE) and found a > > lot of failures. > > I think the problem is that just like for vec_set we're expecting > the vec_extract expander not to fail. It is probably passed not a > con

Re: [PATCH] vect: Remove several useless VMAT_INVARIANT checks

2023-08-14 Thread Richard Biener via Gcc-patches
On Mon, Aug 14, 2023 at 10:52 AM Kewen.Lin wrote: > > Hi, > > In function vectorizable_load, there is one hunk which is > dedicated for the handlings on VMAT_INVARIANT and return > early, it means we shouldn't encounter any cases with > memory_access_type VMAT_INVARIANT in the following code > aft

Re: [PATCH] vect: Move VMAT_LOAD_STORE_LANES handlings from final loop nest

2023-08-14 Thread Richard Biener via Gcc-patches
On Mon, Aug 14, 2023 at 10:54 AM Kewen.Lin wrote: > > Hi, > > Following Richi's suggestion [1], this patch is to move the > handlings on VMAT_LOAD_STORE_LANES in the final loop nest > of function vectorizable_load to its own loop. Basically > it duplicates the final loop nest, clean up some usele

Re: Re: [PATCH V4] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-14 Thread Richard Biener via Gcc-patches
On Mon, 14 Aug 2023, juzhe.zh...@rivai.ai wrote: > - != CODE_FOR_nothing) > + != CODE_FOR_nothing > + && can_vec_extract_var_idx_p ( > + TYPE_MODE (vectype), TYPE_MODE (TREE_TYPE > (vectype > > I thin

[PATCH] tree-optimization/110991 - unroll size estimate after vectorization

2023-08-14 Thread Richard Biener via Gcc-patches
The following testcase shows that we are bad at identifying inductions that will be optimized away after vectorizing them because SCEV doesn't handle vectorized defs. The following rolls a simpler identification of SSA cycles covering a PHI and an assignment with a binary operator with a constant

Re: [PATCH] tree-optimization/110991 - unroll size estimate after vectorization

2023-08-14 Thread Richard Biener via Gcc-patches
On Mon, 14 Aug 2023, Richard Biener wrote: > The following testcase shows that we are bad at identifying inductions > that will be optimized away after vectorizing them because SCEV doesn't > handle vectorized defs. The following rolls a simpler identification > of SSA cycles covering a PHI and a

Re: Re: [PATCH V4] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-14 Thread Richard Biener via Gcc-patches
On Mon, 14 Aug 2023, ??? wrote: > Thanks Kewen. > > But I saw there is 2 more files include: > > +#include "memmodel.h" > +#include "optabs.h" > > Not sure whether Richard and Richi ok with that change ? Yes, please just apply some common sense. > Thanks. > > > > juzhe.zh...@rivai.ai > >

Re: [PATCH] vect: Move VMAT_LOAD_STORE_LANES handlings from final loop nest

2023-08-14 Thread Richard Biener via Gcc-patches
On Mon, Aug 14, 2023 at 2:49 PM Kewen.Lin wrote: > > Hi Richi, > > on 2023/8/14 20:04, Richard Biener wrote: > > On Mon, Aug 14, 2023 at 10:54 AM Kewen.Lin wrote: > >> > >> Hi, > >> > >> Following Richi's suggestion [1], this patch is to move the > >> handlings on VMAT_LOAD_STORE_LANES in the fin

Re: [PATCH V4] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-14 Thread Richard Biener via Gcc-patches
On Tue, 15 Aug 2023, Kewen.Lin wrote: > Hi Stefan, > > on 2023/8/15 02:51, Stefan Schulze Frielinghaus wrote: > > Hi everyone, > > > > I have bootstrapped and regtested the patch below on s390. For the > > 64-bit target I do not see any changes regarding the testsuite. For the > > 31-bit targe

Re: [PATCH][RFC] tree-optimization/92335 - Improve sinking heuristics for vectorization

2023-08-15 Thread Richard Biener via Gcc-patches
wrote: > > > > > > > > On Thu, 3 Aug 2023, Richard Biener wrote: > > > > > > > > > On Thu, 3 Aug 2023, Richard Biener wrote: > > > > > > > > > > > On Thu, 3 Aug 2023, Prathamesh Kulkarni wrote: > > > > > >

Re: [PATCH] vect: Move VMAT_GATHER_SCATTER handlings from final loop nest

2023-08-15 Thread Richard Biener via Gcc-patches
On Tue, Aug 15, 2023 at 4:44 AM Kewen.Lin wrote: > > on 2023/8/14 22:16, Richard Sandiford wrote: > > "Kewen.Lin" writes: > >> Hi Richard, > >> > >> on 2023/8/14 20:20, Richard Sandiford wrote: > >>> Thanks for the clean-ups. But... > >>> > >>> "Kewen.Lin" writes: > Hi, > > Follo

Re: [PATCH] Makefile.in: Make recog.h depend on $(TREE_H)

2023-08-15 Thread Richard Biener via Gcc-patches
On Tue, Aug 15, 2023 at 5:13 AM Kewen.Lin wrote: > > Hi, > > Commit r14-3093 introduced a random build failure on > build/gencondmd.cc building. Since r14-3093 makes recog.h > include tree.h, which further includes (depends on) some > files that are generated during the building, such as: > all-t

[PATCH] Use find_loop_location from unrolling

2023-08-15 Thread Richard Biener via Gcc-patches
The following uses the common find_loop_location as implemented by the vectorizer to query a loop location also for unrolling. That results in a more consistent reporting of locations. Bootstrap / regtest pending on x86_64-unknown-linux-gnu. * tree-ssa-loop-ivcanon.cc: Include tree-vector

Re: [PATCH V4] VECT: Support loop len control on EXTRACT_LAST vectorization

2023-08-15 Thread Richard Biener via Gcc-patches
On Tue, 15 Aug 2023, Richard Sandiford wrote: > Richard Biener writes: > > On Tue, 15 Aug 2023, Kewen.Lin wrote: > > > >> Hi Stefan, > >> > >> on 2023/8/15 02:51, Stefan Schulze Frielinghaus wrote: > >> > Hi everyone, > >> > > >> > I have bootstrapped and regtested the patch below on s390. For

Re: [PATCH] vect: Move VMAT_GATHER_SCATTER handlings from final loop nest

2023-08-15 Thread Richard Biener via Gcc-patches
On Tue, Aug 15, 2023 at 10:44 AM Richard Sandiford wrote: > > Richard Biener writes: > > On Tue, Aug 15, 2023 at 4:44 AM Kewen.Lin wrote: > >> > >> on 2023/8/14 22:16, Richard Sandiford wrote: > >> > No, it was more that 219-142=77, so it seems like a lot of lines > >> > are being duplicated rat

Re: [PATCH] tree-optimization/110963 - more PRE when optimizing for size

2023-08-15 Thread Richard Biener via Gcc-patches
On Thu, 10 Aug 2023, Jeff Law wrote: > > > On 8/10/23 09:05, Richard Biener wrote: > > > > > >> Am 10.08.2023 um 17:01 schrieb Jeff Law via Gcc-patches > >> : > >> > >> > >> > >>> On 8/10/23 06:41, Richard B

Re: [PATCH 2/2] ipa-cp: Feed results of IPA-CP into value numbering

2023-08-15 Thread Richard Biener via Gcc-patches
On Sun, 13 Aug 2023, Martin Jambor wrote: > Hello Richi, > > it took me quite time to get back to this but it might have actually > helped because it forced me to re-read the code around and in turn > simplify the patch. > > On Mon, Jun 12 2023, Richard Biener wrote: > > On Fri, 9 Jun 2023, Mart

Re: [PATCH] VECT: Apply MASK_LEN_{LOAD_LANES,STORE_LANES} into vectorizer

2023-08-15 Thread Richard Biener via Gcc-patches
On Mon, 14 Aug 2023, juzhe.zh...@rivai.ai wrote: > From: Ju-Zhe Zhong > > Hi, Richard and Richi. > > This patch is adding MASK_LEN_{LOAD_LANES,STORE_LANES} support into > vectorizer. > > Consider this simple case: > > void __attribute__ ((noinline, noclone)) > foo (int *__restrict a, int *__

Re: Re: [PATCH] VECT: Apply MASK_LEN_{LOAD_LANES,STORE_LANES} into vectorizer

2023-08-15 Thread Richard Biener via Gcc-patches
On Tue, 15 Aug 2023, juzhe.zh...@rivai.ai wrote: > Hi, Richi. > > > + if (vect_store_lanes_supported (vectype, group_size, false) > > + == IFN_MASK_LEN_STORE_LANES) > > >> can you use the previously computed 'ifn' here please? > > Do you mean rewrite the codes as follows :? > > int

Re: Re: [PATCH] VECT: Apply MASK_LEN_{LOAD_LANES,STORE_LANES} into vectorizer

2023-08-15 Thread Richard Biener via Gcc-patches
On Tue, 15 Aug 2023, juzhe.zh...@rivai.ai wrote: > Hi, Richi. > > I realize this code perform analysis for load/store > > + internal_fn lanes_ifn; >if (!get_load_store_type (vinfo, stmt_info, vectype, slp_node, mask, > vls_type, > ncopies, &memory_access_type, &

Re: [PATCH] vect: Move VMAT_GATHER_SCATTER handlings from final loop nest

2023-08-15 Thread Richard Biener via Gcc-patches
On Tue, Aug 15, 2023 at 1:47 PM Kewen.Lin wrote: > > on 2023/8/15 15:53, Richard Biener wrote: > > On Tue, Aug 15, 2023 at 4:44 AM Kewen.Lin wrote: > >> > >> on 2023/8/14 22:16, Richard Sandiford wrote: > >>> "Kewen.Lin" writes: > Hi Richard, > > on 2023/8/14 20:20, Richard Sandif

[PATCH] Support constants and externals in BB reduction vectorization

2023-08-15 Thread Richard Biener via Gcc-patches
The following supports vectorizing BB reductions involving a constant or an invariant. Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. * tree-vectorizer.h (_slp_instance::remain_stmts): Change to ... (_slp_instance::remain_defs): ... this. (SLP_INSTANC

Re: [PATCH V2] VECT: Apply MASK_LEN_{LOAD_LANES, STORE_LANES} into vectorizer

2023-08-15 Thread Richard Biener via Gcc-patches
On Tue, 15 Aug 2023, Juzhe-Zhong wrote: > Hi, Richard and Richi. > > This patch is adding MASK_LEN_{LOAD_LANES,STORE_LANES} support into > vectorizer. > > Consider this simple case: > > void __attribute__ ((noinline, noclone)) > foo (int *__restrict a, int *__restrict b, int *__restrict c, >

[PATCH] Cleanup BB vectorization roots handling

2023-08-15 Thread Richard Biener via Gcc-patches
The following moves CONSTRUCTOR handling into the generic BB vectorization roots handling, removing a special case and finally renaming the function now consisting of more than just constructor detection. Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. * tree-vect-slp.cc (vec

[PATCH] Handle TYPE_OVERFLOW_UNDEFINED vectorized BB reductions

2023-08-15 Thread Richard Biener via Gcc-patches
The following changes the gate to perform vectorization of BB reductions to use needs_fold_left_reduction_p which in turn requires handling TYPE_OVERFLOW_UNDEFINED types in the epilogue code generation by promoting any operations generated there to use unsigned arithmetic. The following does this,

Re: [PATCH] vect: Move VMAT_GATHER_SCATTER handlings from final loop nest

2023-08-17 Thread Richard Biener via Gcc-patches
On Wed, Aug 16, 2023 at 4:38 AM Kewen.Lin wrote: > > on 2023/8/15 17:13, Richard Sandiford wrote: > > Richard Biener writes: > >>> OK, fair enough. So the idea is: see where we end up and then try to > >>> improve/factor the APIs in a less peephole way? > >> > >> Yeah, I think that's the only go

Re: [PATCH] Add -Wdisabled-optimization warning for not optimizing sibling calls

2023-08-17 Thread Richard Biener via Gcc-patches
On Wed, Aug 16, 2023 at 12:48 AM Bradley Lucier wrote: > > First, if this is no longer the appropriate group for this discussion, > please tell me where to send it. > > I've been working to understand all the comments here. From them, I think: > > 1. It's OK to have gcc report back to the user w

Re: [PATCH] testsuite: Remove unused dg-line in ce8cdf5bcf96a2db6d7b9f656fc9ba58d7942a83

2023-08-17 Thread Richard Biener via Gcc-patches
On Tue, Aug 15, 2023 at 8:36 PM Benjamin Priour via Gcc-patches wrote: > > From: benjamin priour > > Yet another blunder. > > Succesfully regstrapped against ce8cdf5bcf96a2db6d7b9f656fc9ba58d7942a83 > on x86_64-linux-gnu. > > OK to push on trunk ? OK. > Sorry, > Benjamin. > > Fixup below. > ---

Re: [PATCH] bpf: fix pseudoc w regs for small modes [PR111029]

2023-08-17 Thread Richard Biener via Gcc-patches
On Tue, Aug 15, 2023 at 9:03 PM Jose E. Marchesi via Gcc-patches wrote: > > > Hello David. > Thanks for the patch. > > OK. Picking a random patch/mail for this question - how do we maintain BPF support for the most recent GCC release which is GCC 13? I see the current state in GCC 13 isn't fully

Re: [PATCH] Fix code_helper unused argument warning for fr30

2023-08-17 Thread Richard Biener via Gcc-patches
On Thu, Aug 17, 2023 at 9:21 AM Jan-Benedict Glaw wrote: > > Hi! > > fr30 is the only target defining GO_IF_LEGITIMATE_ADDRESS right now, in > which case the `code_helper ch` argument to memory_address_addr_space_p() > is unused and emits a new warning. OK. > gcc/ChangeLog: > * recog.cc

[PATCH] tree-optimization/111039 - abnormals and bit test merging

2023-08-17 Thread Richard Biener via Gcc-patches
The following guards the bit test merging code in if-combine against the appearance of SSA names used in abnormal PHIs. Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. PR tree-optimization/111039 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for SSA_NAME_

Re: [PATCH] c: Add support for [[__extension__ ...]]

2023-08-17 Thread Richard Biener via Gcc-patches
> Am 17.08.2023 um 13:25 schrieb Richard Sandiford via Gcc-patches > : > > Joseph Myers writes: >>> On Wed, 16 Aug 2023, Richard Sandiford via Gcc-patches wrote: >>> >>> Would it be OK to add support for: >>> >>> [[__extension__ ...]] >>> >>> to suppress the pedwarn about using [[]] prio

Re: [PATCH] Document cond_neg, cond_one_cmpl, cond_len_neg and cond_len_one_cmpl standard patterns

2023-08-17 Thread Richard Biener via Gcc-patches
On Thu, Aug 17, 2023 at 9:26 PM Andrew Pinski via Gcc-patches wrote: > > When I added `cond_one_cmpl` (and the corresponding IFN) I had noticed > cond_neg > standard named pattern was not documented and this adds the documentation for > all 4 named patterns now. > > OK? Tested by building the man

[PATCH] tree-optimization/111048 - avoid flawed logic in fold_vec_perm

2023-08-18 Thread Richard Biener via Gcc-patches
The following avoids running into somehow flawed logic in fold_vec_perm for non-VLA vectors. Bootstrap & regtest running on x86_64-unknown-linux-gnu. Richard. PR tree-optimization/111048 * fold-const.cc (fold_vec_perm_cst): Check for non-VLA vectors first. * gcc.

Re: [PATCH] tree-optimization/111048 - avoid flawed logic in fold_vec_perm

2023-08-18 Thread Richard Biener via Gcc-patches
On Fri, 18 Aug 2023, Richard Sandiford wrote: > Richard Biener writes: > > The following avoids running into somehow flawed logic in fold_vec_perm > > for non-VLA vectors. > > > > Bootstrap & regtest running on x86_64-unknown-linux-gnu. > > > > Richard. > > > > PR tree-optimization/111048 > >

Re: [PATCH] gimple_fold: Support COND_LEN_FNMA/COND_LEN_FMS/COND_LEN_FNMS gimple fold

2023-08-18 Thread Richard Biener via Gcc-patches
On Wed, 16 Aug 2023, Juzhe-Zhong wrote: > Hi, Richard and Richi. > > Currently, GCC support COND_LEN_FMA for floating-point **NO** -ffast-math. > It's supported in tree-ssa-math-opts.cc. However, GCC failed to support > COND_LEN_FNMA/COND_LEN_FMS/COND_LEN_FNMS. > > Consider this following case:

Re: [PATCH][RFC] tree-optimization/92335 - Improve sinking heuristics for vectorization

2023-08-18 Thread Richard Biener via Gcc-patches
On Thu, 17 Aug 2023, Prathamesh Kulkarni wrote: > On Tue, 15 Aug 2023 at 14:28, Richard Sandiford > wrote: > > > > Richard Biener writes: > > > On Mon, 14 Aug 2023, Prathamesh Kulkarni wrote: > > >> On Mon, 7 Aug 2023 at 13:19, Richard Biener > > >> wrote: > > >> > It doesn't seem to make a di

Re: [PATCH] MATCH: Sink convert for vec_cond

2023-08-18 Thread Richard Biener via Gcc-patches
On Thu, Aug 17, 2023 at 3:38 AM Andrew Pinski via Gcc-patches wrote: > > Convert be sinked into a vec_cond if both sides > fold. Unlike other unary operations, we need to check that we still can handle > this vec_cond's first operand is the same as the new truth type. > > I tried a few different v

Re: [PATCH] Makefile.in: Make TM_P_H depend on $(TREE_H) [PR111021]

2023-08-18 Thread Richard Biener via Gcc-patches
On Thu, Aug 17, 2023 at 8:15 AM Kewen.Lin wrote: > > Hi, > > As PR111021 shows, the below ${port}-protos.h include tree.h > for code_helper and tree_code: > > arm/arm-protos.h:#include "tree.h" > cris/cris-protos.h:#include "tree.h" (H-P removed this in r14-3218) > microblaze/microblaze-prot

Re: [PATCH] vect: Factor out the handling on scatter store having gs_info.decl

2023-08-18 Thread Richard Biener via Gcc-patches
On Thu, Aug 17, 2023 at 8:22 AM Kewen.Lin wrote: > > Hi, > > Similar to the existing function vect_build_gather_load_calls, > this patch is to factor out the handling on scatter store > having gs_info.decl to vect_build_scatter_store_calls which > is a new function. It also does some minor refact

Re: [PATCH][RFC] tree-optimization/92335 - Improve sinking heuristics for vectorization

2023-08-18 Thread Richard Biener via Gcc-patches
On Fri, 18 Aug 2023, Richard Biener wrote: > On Thu, 17 Aug 2023, Prathamesh Kulkarni wrote: > > > On Tue, 15 Aug 2023 at 14:28, Richard Sandiford > > wrote: > > > > > > Richard Biener writes: > > > > On Mon, 14 Aug 2023, Prathamesh Kulkarni wrote: > > > >> On Mon, 7 Aug 2023 at 13:19, Richard

RE: [PATCH 12/19]middle-end: implement loop peeling and IV updates for early break.

2023-08-18 Thread Richard Biener via Gcc-patches
On Fri, 18 Aug 2023, Tamar Christina wrote: > > > Yeah if you comment it out one of the testcases should fail. > > > > using new_preheader instead of e->dest would make things clearer. > > > > You are now adding the same arg to every exit (you've just queried the > > main exit redirect_edge_var_

[PATCH] tree-optimization/111019 - invariant motion and aliasing

2023-08-18 Thread Richard Biener via Gcc-patches
The following fixes a bad choice in representing things to the alias oracle by LIM which while correct in pieces is inconsistent with itself. When canonicalizing a ref to a bare deref instead of leaving the base object and the extracted offset the same and just substituting an alternate ref the fol

RE: [PATCH 12/19]middle-end: implement loop peeling and IV updates for early break.

2023-08-18 Thread Richard Biener via Gcc-patches
On Fri, 18 Aug 2023, Tamar Christina wrote: > > -Original Message- > > From: Richard Biener > > Sent: Friday, August 18, 2023 2:53 PM > > To: Tamar Christina > > Cc: gcc-patches@gcc.gnu.org; nd ; j...@ventanamicro.com > > Subject: RE: [PATCH 12/19]middle-end: implement loop peeling and I

Re: Intel AVX10.1 Compiler Design and Support

2023-08-19 Thread Richard Biener via Gcc-patches
> Am 20.08.2023 um 00:45 schrieb ZiNgA BuRgA via Gcc-patches > : > > Hi, > > With the proposed design of these switches, how would I restrict AVX10.1 to > particular AVX-512 subsets? > > For example, usage of the |_mm256_rol_epi32| intrinsic should be compatible > on any AVX10/256 impleme

Re: [PATCH] tree-optimization/111048 - avoid flawed logic in fold_vec_perm

2023-08-20 Thread Richard Biener via Gcc-patches
On Sat, 19 Aug 2023, Prathamesh Kulkarni wrote: > On Fri, 18 Aug 2023 at 14:52, Richard Biener wrote: > > > > On Fri, 18 Aug 2023, Richard Sandiford wrote: > > > > > Richard Biener writes: > > > > The following avoids running into somehow flawed logic in fold_vec_perm > > > > for non-VLA vectors

Re: [PATCH][RFC] tree-optimization/92335 - Improve sinking heuristics for vectorization

2023-08-20 Thread Richard Biener via Gcc-patches
On Sat, 19 Aug 2023, Prathamesh Kulkarni wrote: > On Fri, 18 Aug 2023 at 17:11, Richard Biener wrote: > > > > On Fri, 18 Aug 2023, Richard Biener wrote: > > > > > On Thu, 17 Aug 2023, Prathamesh Kulkarni wrote: > > > > > > > On Tue, 15 Aug 2023 at 14:28, Richard Sandiford > > > > wrote: > > > >

Re: [PATCH] LCM: Export 2 helpful functions as global for VSETVL PASS use in RISC-V backend

2023-08-21 Thread Richard Biener via Gcc-patches
On Mon, 21 Aug 2023, Juzhe-Zhong wrote: > This patch exports 'compute_antinout_edge' and 'compute_earliest' as global > scope > which is going to be used in VSETVL PASS of RISC-V backend. > > The demand fusion is the fusion of VSETVL information to emit VSETVL which > dominate and pre-config fo

Re: [PATCH] Testsuite, LTO: silence warning to make test pass on Darwin

2023-08-21 Thread Richard Biener via Gcc-patches
On Sun, Aug 20, 2023 at 12:24 PM FX Coudert via Gcc-patches wrote: > > Hi, > > On darwin (both x86_64-apple-darwin and aarch64-apple-darwin) we see the > following test failure: > > FAIL: gcc.dg/lto/20091013-1 c_lto_20091013-1_2.o assemble, -fPIC -r -nostdlib > -O2 -flto > > which is due to this

Re: Intel AVX10.1 Compiler Design and Support

2023-08-21 Thread Richard Biener via Gcc-patches
On Mon, Aug 21, 2023 at 3:20 AM Hongtao Liu via Gcc-patches wrote: > > On Sun, Aug 20, 2023 at 6:44 AM ZiNgA BuRgA via Gcc-patches > wrote: > > > > Hi, > > > > With the proposed design of these switches, how would I restrict AVX10.1 > > to particular AVX-512 subsets? > We can't, avx10.1 is taken

Re: [PATCH] MATCH: [PR111002] Sink view_convert for vec_cond

2023-08-21 Thread Richard Biener via Gcc-patches
On Mon, Aug 21, 2023 at 5:22 AM Andrew Pinski via Gcc-patches wrote: > > Like convert we can sink view_convert into vec_cond but > we can only do it if the element types are nop_conversions. > This is to allow conversion between signed and unsigned types only. > Rather than between integer and flo

Re: [PATCH] Add -Wdisabled-optimization warning for not optimizing sibling calls

2023-08-21 Thread Richard Biener via Gcc-patches
On Fri, Aug 18, 2023 at 7:13 PM Bradley Lucier wrote: > > On 8/17/23 3:54 AM, Richard Biener wrote: > > I think it needs a new category, 'inline' is probably the "closest" > > existing one > > but that also tends to be noisy. Maybe 'call' would be a good name? We > > could > > report things li

Re: Re: [PATCH] LCM: Export 2 helpful functions as global for VSETVL PASS use in RISC-V backend

2023-08-21 Thread Richard Biener via Gcc-patches
On Mon, 21 Aug 2023, juzhe.zh...@rivai.ai wrote: > Hi. Richi. > I'd like to share more details that I want to do in VSETVL PASS. > > Consider this following case: > > for > for > for > ... > for >VSETVL demand: RATIO = 32 and TU policy. > > For this simple case

[PATCH] tree-optimization/111070 - fix ICE with recent ifcombine fix

2023-08-21 Thread Richard Biener via Gcc-patches
We now got test coverage for non-SSA name bits so the following amends the SSA_NAME_OCCURS_IN_ABNORMAL_PHI checks. Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. Richard. PR tree-optimization/111070 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check we have

[PATCH] debug/111080 - avoid outputting debug info for unused restrict qualified type

2023-08-21 Thread Richard Biener via Gcc-patches
The following applies some maintainance with respect to type qualifiers and kinds added by later DWARF standards to prune_unused_types_walk. The particular case in the bug is not handling (thus marking required) all restrict qualified type DIEs. I've found more DW_TAG_*_type that are unhandled, lo

Re: Re: [PATCH] LCM: Export 2 helpful functions as global for VSETVL PASS use in RISC-V backend

2023-08-21 Thread Richard Biener via Gcc-patches
On Mon, 21 Aug 2023, juzhe.zh...@rivai.ai wrote: > Hi, Richi. > > I found when I try this in lcm.h: > > namespace lcm { > void compute_available (sbitmap *, sbitmap *, sbitmap *, sbitmap *); > void compute_antinout_edge (sbitmap *, sbitmap *, sbitmap *, sbitmap *); > void compute_earliest (struc

Re: Intel AVX10.1 Compiler Design and Support

2023-08-21 Thread Richard Biener via Gcc-patches
On Mon, Aug 21, 2023 at 10:28 AM Hongtao Liu wrote: > > On Mon, Aug 21, 2023 at 4:09 PM Jakub Jelinek wrote: > > > > On Mon, Aug 21, 2023 at 09:36:16AM +0200, Richard Biener via Gcc-patches > > wrote: > > > > On Sun, Aug 20, 2023 at 6:44 AM ZiNgA

<    2   3   4   5   6   7   8   9   10   11   >