[PATCH] Fix load/store bias handling for extractlast.

2025-09-11 Thread Juergen Christ
handling. gcc/testsuite/ChangeLog: * gcc.dg/vect/nodump-extractlast-1.c: New test. Signed-off-by: Juergen Christ --- .../gcc.dg/vect/nodump-extractlast-1.c| 21 ++ gcc/tree-vect-loop.cc | 22 ++- 2 files changed, 33

Re: [PATCH] Fix load/store bias handling for extractlast.

2025-09-10 Thread Juergen Christ
> > > > Am 09.09.2025 um 12:54 schrieb Juergen Christ : > > > > The length returned by vect_get_loop_len is REALLEN + BIAS, but was > > assumed to be REALLEN - BIAS. If BIAS is -1, this leads to wrong > > code. > > > > Bootstrapped and regteste

[PATCH v2] s390: Implement clz and ctz for SI mode

2025-09-10 Thread Juergen Christ
390/s390.md (clzsi2): Implement. (ctzsi2): Implement. gcc/testsuite/ChangeLog: * gcc.dg/vect/pr109011-2.c: Fix expected outcome. * gcc.dg/vect/pr109011-4.c: Fix expected outcome. * gcc.target/s390/ffs-1.c: New test. Signed-off-by: Juergen Christ --- gcc/config/s

[PATCH] s390: Implement clz and ctz for SI mode

2025-08-29 Thread Juergen Christ
si2): Implement. gcc/testsuite/ChangeLog: * gcc.dg/vect/pr109011-2.c: Fix expected outcome. * gcc.dg/vect/pr109011-4.c: Fix expected outcome. * gcc.target/s390/ffs-1.c: New test. Signed-off-by: Juergen Christ Bootstrapped and regtested on s390. Ok for trunk? --- gcc/config/s

[PATCH] testsuite: Adjust s390x params for vector tests.

2025-07-29 Thread Juergen Christ
Loop peeling and minimal loop vectorization threshold prevented loop vectorization in these examples. Adjust parameters in the test to make the test pass. Tested on s390x. Okay for main and gcc15? Signed-off-by: Juergen Christ PR testsuite/121286 PR testsuite/121288 gcc

[PATCH 2/2] s390: Implement reduction optabs

2025-07-10 Thread Juergen Christ
Implementation and tests for the standard reduction optabs. Bootstrapped and regtested on s390. Ok for trunk? Signed-off-by: Juergen Christ gcc/ChangeLog: * config/s390/vector.md (reduc_plus_scal_): Implement. (reduc_plus_scal_v2df): Implement. (reduc_plus_scal_v4sf

[PATCH 1/2] s390: Remove min-vect-loop-bound override

2025-07-10 Thread Juergen Christ
backends. Signed-off-by: Juergen Christ gcc/ChangeLog: * config/s390/s390.cc (s390_option_override_internal): Remove override. --- gcc/config/s390/s390.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc index de9c15c7bd42

[committed] s390: Fix vector pattern tests for -m31.

2025-07-09 Thread Juergen Christ
Vectorization of int patterns requires 64bit long type (at least the way the tests are coded). Fix this to only test for successful vectoriation on 64bit targets. Signed-off-by: Juergen Christ gcc/testsuite/ChangeLog: * gcc.target/s390/vector/pattern-avg-1.c: Fix on -m31

[committed] s390: Split tests for 31bit support

2025-07-08 Thread Juergen Christ
The new vector pattern tests used int128 without guard. This causes failure on 31bit targets. Split the tests such that the tests requiring 128 bit support are only executed on targets supporting them. Committed as obvious. Signed-off-by: Juergen Christ gcc/testsuite/ChangeLog

Re: [PATCH v2] s390: Optimize fmin/fmax.

2025-07-07 Thread Juergen Christ
> On Wed, Jun 25, 2025 at 10:04:41AM +0200, Juergen Christ wrote: > > On VXE targets, we can directly use the fp min/max instruction instead of > > calling into libm for fmin/fmax etc. > > > > Provide fmin/fmax versions also for vectors even though it cannot be > &g

Re: [PATCH] s390: More vec-perm-const cases.

2025-07-03 Thread Juergen Christ
> On 6/27/25 8:09 PM, Juergen Christ wrote: > > s390 missed constant vector permutation cases based on the vector pack > > instruction or changing the size of the vector elements during vector > > merge. This enables some more patterns that do not need to load a &g

[PATCH] s390: More vec-perm-const cases.

2025-06-27 Thread Juergen Christ
. * gcc.target/s390/vector/vec-perm-pack-1.c: New test. Signed-off-by: Juergen Christ --- gcc/config/s390/s390.cc | 169 +++- .../gcc.target/s390/vector/vec-perm-merge-1.c | 242 ++ .../gcc.target/s390/vector/vec-perm-pack-1.c | 133 ++ 3 files

[PATCH v2] s390: Add some missing vector patterns.

2025-06-25 Thread Juergen Christ
. * config/s390/vx-builtins.md (vec_umulh): Remove unspec. (vec_smulh): Remove unspec. gcc/testsuite/ChangeLog: * gcc.target/s390/vector/pattern-avg-1.c: New test. * gcc.target/s390/vector/pattern-mulh-1.c: New test. Signed-off-by: Juergen Christ --- gcc/config/s390/s390.md

[PATCH v2] s390: Optimize fmin/fmax.

2025-06-25 Thread Juergen Christ
insn. (vfmax): Redefined to use new insn. gcc/testsuite/ChangeLog: * gcc.target/s390/fminmax-1.c: New test. * gcc.target/s390/fminmax-2.c: New test. Signed-off-by: Juergen Christ --- gcc/config/s390/s390.md | 6 +- gcc/config/s390/vector.md

Re: [PATCH] s390: Add some missing vector patterns.

2025-06-25 Thread Juergen Christ
> On Tue, Jun 24, 2025 at 09:49:01AM +0200, Juergen Christ wrote: > > Some patterns that are detected by the autovectorizer can be supported by > > s390. Add expanders such that autovectorization of these patterns works. > > > > Bootstrapped and regtested on s390.

Re: [PATCH] s390: Optimize fmin/fmax.

2025-06-25 Thread Juergen Christ
> On Mon, Jun 23, 2025 at 09:51:13AM +0200, Juergen Christ wrote: > > On VXE targets, we can directly use the fp min/max instruction instead of > > calling into libm for fmin/fmax etc. > > > > Provide fmin/fmax versions also for vectors even though it cannot be > &g

[PATCH] s390: Add some missing vector patterns.

2025-06-24 Thread Juergen Christ
): New pattern. (smul3_highpart): New pattern. (umul3_highpart): New pattern. gcc/testsuite/ChangeLog: * gcc.target/s390/vector/pattern-avg-1.c: New test. * gcc.target/s390/vector/pattern-mulh-1.c: New test. Signed-off-by: Juergen Christ --- gcc/config/s390/vector.md

[PATCH] s390: Optimize fmin/fmax.

2025-06-23 Thread Juergen Christ
-by: Juergen Christ --- gcc/config/s390/s390.md | 3 + gcc/config/s390/vector.md | 24 +++ gcc/testsuite/gcc.target/s390/fminmax-1.c | 77 +++ gcc/testsuite/gcc.target/s390/fminmax-2.c | 29 + 4 files changed, 133 insertions

[PATCH] s390: Fix float vector extract for pre-z13

2025-06-20 Thread Juergen Christ
suite/ChangeLog: * gcc.target/s390/vector/vec-extract-1.c: Fix test on arch11. * gcc.target/s390/vector/vec-set-1.c: Run test on arch11. * gcc.target/s390/vector/vec-extract-2.c: New test. Signed-off-by: Juergen Christ --- gcc/config/s390/vector.md

[PATCH v2] s390: Floating point vector lane handling

2025-05-26 Thread Juergen Christ
/ChangeLog: * gcc.target/s390/vector/vec-extract-1.c: New test. * gcc.target/s390/vector/vec-set-1.c: New test. Signed-off-by: Juergen Christ --- gcc/config/s390/vector.md | 137 +++-- .../gcc.target/s390/vector/vec-extract-1.c| 190

[PATCH] s390: Floating point vector lane handling

2025-05-14 Thread Juergen Christ
/vector/vec-extract-1.c: New test. * gcc.target/s390/vector/vec-set-1.c: New test. Signed-off-by: Juergen Christ --- gcc/config/s390/vector.md | 135 - .../gcc.target/s390/vector/vec-extract-1.c| 190 ++ .../gcc.target/s390/vector/vec-set-1.c

[PATCH] s390: fix delegitimization of addresses

2025-03-10 Thread Juergen Christ
ite/ChangeLog: * gcc.target/s390/delegitimize.c: New test. Bootstrapped and tested on s390x. Okay for trunk? Signed-off-by: Juergen Christ --- gcc/config/s390/s390.cc | 15 + gcc/testsuite/gcc.target/s390/delegitimize.c | 22 2 fi

[PATCH] s390: Fix UNSPEC_CC_TO_INT canonicalization

2024-12-06 Thread Juergen Christ
/ChangeLog: * gcc.target/s390/ccusage.c: New test. Signed-off-by: Juergen Christ Bootstrapped and regression tested on s390. Okay for trunk? Okay to backport to GCC 14? --- gcc/config/s390/s390.cc | 2 +- gcc/testsuite/gcc.target/s390/ccusage.c | 37

Re: [PATCH] vect: Multistep float->int conversion only with no trapping math

2024-08-20 Thread Juergen Christ
Am Tue, Aug 20, 2024 at 02:51:02PM +0200 schrieb Richard Biener: > On Tue, Aug 20, 2024 at 11:16 AM Juergen Christ wrote: > > > > Am Tue, Aug 20, 2024 at 10:15:22AM +0200 schrieb Richard Biener: > > > On Fri, Aug 9, 2024 at 2:58 PM Juergen Christ > > > wrot

Re: [PATCH] vect: Multistep float->int conversion only with no trapping math

2024-08-20 Thread Juergen Christ
Am Tue, Aug 20, 2024 at 10:15:22AM +0200 schrieb Richard Biener: > On Fri, Aug 9, 2024 at 2:58 PM Juergen Christ wrote: > > > > Am Thu, Aug 08, 2024 at 02:06:44PM +0200 schrieb Richard Biener: > > > On Mon, Aug 5, 2024 at 4:02 PM Juergen Christ > > > wrote: >

Re: [PATCH] vect: Multistep float->int conversion only with no trapping math

2024-08-09 Thread Juergen Christ
Am Thu, Aug 08, 2024 at 02:06:44PM +0200 schrieb Richard Biener: > On Mon, Aug 5, 2024 at 4:02 PM Juergen Christ wrote: > > > > Am Mon, Aug 05, 2024 at 01:00:31PM +0200 schrieb Richard Biener: > > > On Fri, Aug 2, 2024 at 2:43 PM Juergen Christ > > > wrote: >

Re: [PATCH] vect: Multistep float->int conversion only with no trapping math

2024-08-05 Thread Juergen Christ
Am Mon, Aug 05, 2024 at 01:00:31PM +0200 schrieb Richard Biener: > On Fri, Aug 2, 2024 at 2:43 PM Juergen Christ wrote: > > > > Do not convert floats to ints in multiple step if trapping math is > > enabled. This might hide some inexact signals. > > > > Also

[PATCH] vect: Multistep float->int conversion only with no trapping math

2024-08-02 Thread Juergen Christ
negative). gcc/ChangeLog: * tree-vect-stmts.cc (vectorizable_conversion): multi-step float to int conversion only with trapping math and correct sign. Signed-off-by: Juergen Christ Bootstrapped and tested on x84 and s390. Ok for trunk? --- gcc/tree-vect-stmts.cc

[PATCH] s390: define single step vector casts

2024-06-20 Thread Juergen Christ
-cast-single.c: New test. * gcc.target/s390/vector/vec_pack_ufix_trunc_v2df.c: New test. Bootstrapped and regtested on s390x. Ok for trunk? Signed-off-by: Juergen Christ --- gcc/config/s390/vector.md | 170 ++- .../gcc.target/s390/vector/vec-cast-single.c

Re: [PATCH v2] s390x: Optimize vector permute with constant indexes

2024-04-09 Thread Juergen Christ
Am Tue, Apr 09, 2024 at 05:01:18PM +0200 schrieb Andreas Krebbel: > On 4/9/24 16:31, Juergen Christ wrote: > > Loop vectorizer can generate vector permutes with constant indexes > > where all indexes are equal. Optimize this case to use vector > > replicate instead of vector

[PATCH v2] s390x: Optimize vector permute with constant indexes

2024-04-09 Thread Juergen Christ
new function. * config/s390/vx-builtins.md (vec_splat): Change to... (@vec_splat): ...this. gcc/testsuite/ChangeLog: * gcc.target/s390/vector/vec-expand-replicate.c: New test. Bootstrapped and regtested on s390x. Ok for trunk? Signed-off-by: Juergen Christ --- gcc/config

Re: [PATCH] s390x: Optimize vector permute with constant indexes

2024-04-09 Thread Juergen Christ
Am Tue, Apr 09, 2024 at 11:51:00AM +0200 schrieb Stefan Schulze Frielinghaus: > > +static bool expand_perm_as_replicate (const struct expand_vec_perm_d &d) >^~~~ > Function names start on a new line. Fixed > > +{ > > + unsigned char i; > > + unsigned char ele

[PATCH] s390x: Optimize vector permute with constant indexes

2024-04-02 Thread Juergen Christ
new function. * config/s390/vx-builtins.md (vec_splat): Change to... (@vec_splat): ...this. gcc/testsuite/ChangeLog: * gcc.target/s390/vector/vec-expand-replicate.c: New test. Bootstrapped and regtested on s390x. Ok for trunk? Signed-off-by: Juergen Christ --- gcc/config

[PATCH] s390x: Implement vector cost model

2024-03-20 Thread Juergen Christ
: New test. * gcc.target/s390/vector/slp-1.c: New test. * gcc.target/s390/vector/slp-2.c: New test. Signed-off-by: Juergen Christ Bootstrapped and tested on s390x. Ok for master? --- gcc/config/s390/s390.cc | 127 ++ gcc/testsuite/gcc.target

[PATCH] Add myself to write after approval and DCO.

2024-02-26 Thread Juergen Christ
Hello, I have added myself to write after approval and DCO. Thanks, Juergen Christ ChangeLog: * MAINTAINERS: Add myself to write after approval and DCO. Signed-off-by: Juergen Christ --- MAINTAINERS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS

Re: [PATCH v2] Do not emulate vectors containing floats.

2024-02-23 Thread Juergen Christ
Am Fri, Feb 23, 2024 at 01:57:12PM + schrieb Sam James: > > Juergen Christ writes: > > > The emulation via word mode tries to perform integer arithmetic on floating > > point values instead of floating point arithmetic. This leads to > > mis-compilations. > &

[PATCH v2] Do not emulate vectors containing floats.

2024-02-23 Thread Juergen Christ
/vector/partial/s390-vec-length-epil-run-3.c gcc.target/s390/vector/partial/s390-vec-length-full-run-3.c gcc/ChangeLog: * tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating point vectors Signed-off-by: Juergen Christ --- gcc/tree-vect-stmts.cc | 3 ++- 1

[PATCH] Do not emulate vectors containing floats.

2024-02-19 Thread Juergen Christ
Fixes various test failures on s390x. gcc/ChangeLog: * tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating point vectors Signed-off-by: Juergen Christ Regtested and bootstrapped on x86_64-pc-linux-gnu and s390x-ibm-linux-gnu. Okay for trunk? --- gcc

[PATCH] s390x: Fix PR112753

2023-11-30 Thread Juergen Christ
: * gcc.target/s390/pr112753.c: New test. Bootstrapped and tested on s390x. Signed-off-by: Juergen Christ --- gcc/config/s390/s390.cc | 4 gcc/testsuite/gcc.target/s390/pr112753.c | 8 2 files changed, 12 insertions(+) create mode 100644 gcc/testsuite

[PATCH] s390: implement flags output

2023-11-15 Thread Juergen Christ
cases. (s390_md_asm_adjust): Implement flags output. * config/s390/s390.md (ccstore4): Allow mask operands. * doc/extend.texi: Document flags output. gcc/testsuite/ChangeLog: * gcc.target/s390/ccor.c: New test. Signed-off-by: Juergen Christ --- gcc/config/s390/s390

[PATCH] s390: split int128 load

2023-11-15 Thread Juergen Christ
Issue two loads when using GPRs instead of one load-multiple. Bootstrapped and tested on s390. OK for mainline? gcc/ChangeLog: * config/s390/s390.md: Split TImode loads. gcc/testsuite/ChangeLog: * gcc.target/s390/int128load.c: New test. Signed-off-by: Juergen Christ

[PATCH] s390: Fix ICE in testcase pr89233

2023-11-15 Thread Juergen Christ
? gcc/ChangeLog: * config/s390/vector.md: (*vec_extract) Fix. Signed-off-by: Juergen Christ --- gcc/config/s390/vector.md | 14 -- 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/gcc/config/s390/vector.md b/gcc/config/s390/vector.md index 7d1eb36e8446..deda5990a035

[PATCH] s390: fix htm-builtins test cases

2023-10-25 Thread Juergen Christ
/s390/htm-builtins-2.c: Fix. Signed-off-by: Juergen Christ --- gcc/testsuite/gcc.target/s390/htm-builtins-1.c | 4 +++- gcc/testsuite/gcc.target/s390/htm-builtins-2.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/gcc.target/s390/htm-builtins-1.c b/gcc

[PATCH] s390: Optimize vec_cmpge followed by vec_sel

2023-07-17 Thread Juergen Christ via Gcc-patches
: * gcc.target/s390/vector/vec-cmpge.c: New test. Signed-off-by: Juergen Christ --- gcc/config/s390/vx-builtins.md | 11 +++ .../gcc.target/s390/vector/vec-cmpge.c | 18 ++ 2 files changed, 29 insertions(+) create mode 100644 gcc/testsuite

[PATCH] s390: Fix vec_init default expander

2023-07-07 Thread Juergen Christ via Gcc-patches
-off-by: Juergen Christ --- gcc/config/s390/s390.cc | 11 ++- .../gcc.target/s390/vector/vec-init-3.c | 17 + 2 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 gcc/testsuite/gcc.target/s390/vector/vec-init-3.c diff --git