Re: [PATCH] s390: Make use of new copysign RTL

2023-10-06 Thread Andreas Krebbel
On 10/5/23 08:46, Stefan Schulze Frielinghaus wrote: > gcc/ChangeLog: > > * config/s390/s390.md: Make use of new copysign RTL. Ok. Thanks! Andreas > --- > gcc/config/s390/s390.md | 6 ++ > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/gcc/config/s390/s390.md b/gcc

Re: [PATCH] s390: Fix expander popcountv8hi2_vx

2023-10-16 Thread Andreas Krebbel
On 10/16/23 13:20, Stefan Schulze Frielinghaus wrote: > The normal form of a CONST_INT which represents an integer of a mode > with fewer bits than in HOST_WIDE_INT is sign extended. This even holds > for unsigned integers. > > This fixes an ICE during cse1 where we bail out at rtl.h:2297 since >

Re: [PATCH] C++: Fix PR86083

2018-07-06 Thread Andreas Krebbel
On 06/20/2018 01:41 PM, Andreas Krebbel wrote: > When turning a user-defined numerical literal into an operator > invocation the literal needs to be translated to the execution > character set. > > Bootstrapped and regtested on s390x. x86_64 still running. > Ok to apply

Re: [PATCH, S390] Increase function alignment to 16 bytes

2018-07-13 Thread Andreas Krebbel
On 07/12/2018 01:34 PM, Robin Dapp wrote: > Hi, > >> Please skip '+  && !opts->x_optimize_size)'. I'm attaching patch >> that will >> set opts->x_flag_align_functions to 0 for -Os. It's part of another batch >> alignment patches I'm preparing. > > done in the attached version and added some t

[PATCH] S/390: libstdc++: 64 and 32 bit baseline update

2018-07-13 Thread Andreas Krebbel
Obviously I missed doing a refresh for some time already. Do the updates look reasonable? Andreas libstdc++-v3/ChangeLog: 2018-07-13 Andreas Krebbel * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt

Re: [PATCH] S/390: libstdc++: 64 and 32 bit baseline update

2018-07-16 Thread Andreas Krebbel
On 07/13/2018 04:58 PM, Andreas Schwab wrote: > On Jul 13 2018, Andreas Krebbel wrote: > >> @@ -5645,3 +5657,5 @@ OBJECT:8:_ZTTSi@@GLIBCXX_3.4 >> OBJECT:8:_ZTTSo@@GLIBCXX_3.4 >> OBJECT:8:_ZTTSt13basic_istreamIwSt11char_traitsIwEE@@

Re: [PATCH, S390] Avoid LA with base and index on z13

2018-07-16 Thread Andreas Krebbel
On 07/16/2018 01:02 PM, Robin Dapp wrote: >> But on zEC12 LA works pretty much the same as on z13/z14, it is >> indeed not cracked, but still a 2-cycle instruction when using >> an index register. So I guess the change really should apply >> to zEC12 as well, and this could be as simple as changin

Re: [PATCH 1/3] S/390: Implement -mfentry

2018-07-16 Thread Andreas Krebbel
On 07/16/2018 09:48 AM, Ilya Leoshkevich wrote: > This is the counterpart of the i386 feature introduced by > 39a5a6a4: Add direct support for Linux kernel __fentry__ patching. > > On i386, the difference between mcount and fentry is that fentry > comes before the prolog. On s390 mcount already co

Re: [PATCH 2/3] S/390: Implement -mrecord-mcount

2018-07-16 Thread Andreas Krebbel
On 07/16/2018 09:48 AM, Ilya Leoshkevich wrote: > This is the counterpart of the i386 feature introduced by > 39a5a6a4: Add direct support for Linux kernel __fentry__ patching. > > * gcc/config/s390/s390.c (s390_function_profiler): Generate > __mcount_loc section. > * gcc/c

Re: [PATCH 3/3] S/390: Implement -mnop-mcount

2018-07-16 Thread Andreas Krebbel
On 07/16/2018 09:48 AM, Ilya Leoshkevich wrote: > This is the counterpart of the i386 feature introduced by > 39a5a6a4: Add direct support for Linux kernel __fentry__ patching. > > On i386 the profiler call sequence always consists of 1 call > instruction, so -mnop-mcount generates a single nop wi

Re: [PATCH] S/390: Add CFI for mcount call sequences

2018-07-18 Thread Andreas Krebbel
On 07/17/2018 12:48 PM, Ilya Leoshkevich wrote: > Fixes unwind for mcount. > > 2018-07-17 Ilya Leoshkevich > > * config/s390/s390.c (s390_function_profiler): > Generate CFI. Applied. Thanks! Andreas

[Committed] S/390: Don't emit prefetch instructions for clrmem

2018-07-31 Thread Andreas Krebbel
From: Andreas Krebbel gcc/ChangeLog: 2018-07-31 Andreas Krebbel * config/s390/s390.c (s390_expand_setmem): Make the unrolling to depend on whether prefetch instructions will be emitted or not. Use TARGET_SETMEM_PFD for checking whether prefetch instructions

Re: [PATCH] s390: fix htm-builtins test cases

2023-10-25 Thread Andreas Krebbel
On 10/25/23 16:50, Juergen Christ wrote: > Transactional and non-transactional stores to the same cache line cause > transactions to abort on newer generations. Add sufficient padding to make > sure another cache line is used. > > Tested on s390. > > gcc/testsuite/ChangeLog: > > * gcc.tar

Re: [PATCH] S/390: Use UNSPEC_GET_TP for thread pointer loads

2019-10-23 Thread Andreas Krebbel
On 23.10.19 13:02, Ilya Leoshkevich wrote: > Boostrapped and regtested on s390x-redhat-linux. > > gcc/ChangeLog: > > 2019-10-21 Ilya Leoshkevich > > * config/s390/s390.c (s390_get_thread_pointer): Use > gen_get_thread_pointer. > (s390_expand_split_stack_prologue): Likewise.

Re: [PR testsuite/91842] Skip gcc.dg/ipa/ipa-sra-19.c on power

2019-10-24 Thread Andreas Krebbel
On 02.10.19 17:06, Martin Jambor wrote: > Hi, > > I seem to remember I minimized gcc.dg/ipa/ipa-sra-19.c on power but > perhaps I am wrong because the testcase fails there with a > power-specific error: > > gcc.dg/ipa/ipa-sra-19.c:19:3: error: AltiVec argument passed to unprototyped > function >

Re: [PR testsuite/91842] Skip gcc.dg/ipa/ipa-sra-19.c on power

2019-10-24 Thread Andreas Krebbel
On 24.10.19 15:26, Martin Jambor wrote: > Hi, > > On Thu, Oct 24 2019, Andreas Krebbel wrote: >> On 02.10.19 17:06, Martin Jambor wrote: >>> Hi, >>> >>> I seem to remember I minimized gcc.dg/ipa/ipa-sra-19.c on power but >>> perhaps I am wron

[Committed] ipa-sra-19.c: Avoid unprototyped function

2019-10-24 Thread Andreas Krebbel
Andreas Krebbel * gcc.dg/ipa/ipa-sra-19.c: Remove dg-skip-if. Add argument type to prototype of k. --- gcc/testsuite/gcc.dg/ipa/ipa-sra-19.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gcc/testsuite/gcc.dg/ipa/ipa-sra-19.c b/gcc/testsuite/gcc.dg/ipa/ipa

[Committed 0/4] IBM Z: Fix a few testsuite problems

2019-11-05 Thread Andreas Krebbel
Andreas Krebbel (4): IBM Z: Use tree_fits_uhwi_p in vector_alignment hook IBM Z: Fix testsuite useable_hw check IBM Z: gen-vect-11/32: Set min-vect-loop-bound param back to default IBM Z: gen-vect-26/28: Vectorizing without peeling is ok for Z gcc/config/s390/s390.c

[PATCH 2/4] IBM Z: Fix testsuite useable_hw check

2019-11-05 Thread Andreas Krebbel
/ChangeLog: 2019-11-05 Andreas Krebbel * gcc.target/s390/s390.exp (check_effective_target_s390_useable_hw): Add inline asm for z14 and z15. Replace instruction for z13 with lochiz. Add register clobbers. Check also for __zarch__ when doing the __VX__ test. --- gcc

[PATCH 3/4] IBM Z: gen-vect-11/32: Set min-vect-loop-bound param back to default

2019-11-05 Thread Andreas Krebbel
actually is a pity. The patch sets min-vect-loop-bound back to the default value of 0 in order to enable vectorization. 2019-11-05 Andreas Krebbel * gcc.dg/tree-ssa/gen-vect-11.c: Add --param min-vect-loop-bound=0 for IBM Z. * gcc.dg/tree-ssa/gen-vect-11.c: Likewise

[PATCH 1/4] IBM Z: Use tree_fits_uhwi_p in vector_alignment hook

2019-11-05 Thread Andreas Krebbel
This fixes an ICE in gcc.dg/attr-vector_size.c testcase. gcc/ChangeLog: 2019-11-05 Andreas Krebbel * config/s390/s390.c (s390_vector_alignment): Check if the value fits into uhwi before using it. --- gcc/config/s390/s390.c | 8 +++- 1 file changed, 7 insertions(+), 1

[PATCH 4/4] IBM Z: gen-vect-26/28: Vectorizing without peeling is ok for Z

2019-11-05 Thread Andreas Krebbel
These tests check if loop peeling has been applied to avoid having to vectorize unaligned loops. On Z we do not have any alignment requirements for vectorization so we also don't need want the loop peeling here. 2019-11-05 Andreas Krebbel * gcc.dg/tree-ssa/gen-vect-26.c: Disable

[Committed] IBM Z: Add pattern for load truth value of comparison into reg

2019-11-07 Thread Andreas Krebbel
of a CC compare into a GPR. Done with the attached patch. Bootstrapped and regression tested on s390x. Committed to mainline. 2019-11-07 Andreas Krebbel * config/s390/s390.md ("*cstorecc_z13"): New insn_and_split pattern. gcc/testsuite/ChangeLog: 2019-11-07 Andre

Re: [Committed] IBM Z: Add pattern for load truth value of comparison into reg

2019-11-11 Thread Andreas Krebbel
On 11.11.19 15:39, Richard Henderson wrote: > On 11/7/19 12:52 PM, Andreas Krebbel wrote: >> +; Such patterns get directly emitted by noce_emit_store_flag. >> +(define_insn_and_split "*cstorecc_z13" >> + [(set (match_operand:GPR 0 "r

Re: [PATCH] s390x: Fix popcounthi2_z196 expander [PR93533]

2020-02-02 Thread Andreas Krebbel
On 2/1/20 9:41 PM, Jakub Jelinek wrote: > Hi! > > The following testcase started to ICE when .POPCOUNT matching has been added > to match.pd; we had __builtin_popcount*, but nothing would use the > popcounthi2 expander before. > > The problem is that the popcounthi2_z196 expander doesn't emit val

[Committed] Fix PR92950: Wrong code emitted for movv1qi

2019-12-16 Thread Andreas Krebbel
The backend emits 16 bit memory loads for single element character vector. As a result the character will not be right justified in the GPR. gcc/ChangeLog: 2019-12-16 Andreas Krebbel PR target/92950 * config/s390/vector.md ("mov" for V_8): Replace lh, lhy,

[PATCH 1/1] Work around array out of bounds warning in mkdeps

2019-12-17 Thread Andreas Krebbel
x86_64 by changing the inlining threshold using: --param max-inline-insns-auto=80 Bootstrapped and regression tested on x86_64 and IBM Z. Ok for mainline? libcpp/ChangeLog: 2019-12-17 Andreas Krebbel PR tree-optimization/92176 * mkdeps.c (deps_add_default_target): --- libcpp

Re: [PATCH] s390: Fix TARGET_SECONDARY_RELOAD for non-SYMBOL_REFs

2024-03-11 Thread Andreas Krebbel
On 2/29/24 13:13, Stefan Schulze Frielinghaus wrote: > RTX X must not necessarily be a SYMBOL_REF and may e.g. be an > UNSPEC_GOTENT for which SYMBOL_FLAG_NOTALIGN2_P fails. > > gcc/ChangeLog: > > * config/s390/s390.cc (s390_secondary_reload): Guard > SYMBOL_FLAG_NOTALIGN2_P. Ok. Than

Re: [PATCH] s390: Fix tests rosbg_si_srl and rxsbg_si_srl

2024-03-11 Thread Andreas Krebbel
On 2/29/24 13:14, Stefan Schulze Frielinghaus wrote: > Starting with r14-2047-gd0e891406b16dc two SI mode tests are optimized > into DI mode. Thus, the scan-assembler directives fail. For example > RTL expression > > (ior:SI (subreg:SI (lshiftrt:DI (reg:DI 69) > (const_int 2 [0x2]))

Re: [PATCH] s390: Fix test vector/long-double-to-i64.c

2024-03-11 Thread Andreas Krebbel
On 2/29/24 13:15, Stefan Schulze Frielinghaus wrote: > Starting with r14-8319-g86de9b66480b71 fwprop improved so that vpdi is > no longer required. > > gcc/testsuite/ChangeLog: > > * gcc.target/s390/vector/long-double-to-i64.c: Fix scan > assembler directive. Should we perhaps rather

Re: [PATCH] s390: Streamline vector builtins with LLVM

2024-03-11 Thread Andreas Krebbel
On 3/1/24 10:29, Stefan Schulze Frielinghaus wrote: > Similar as to s390_lcbb, s390_vll, s390_vstl, et al. make use of a > signed vector type for vlbb. Furthermore, a const void pointer seems > more common and an integer for the mask. > > For s390_vfi(s,d)b make use of integers for masks, too. >

Re: [PATCH] s390: Deprecate some vector builtins

2024-03-11 Thread Andreas Krebbel
On 3/1/24 16:57, Stefan Schulze Frielinghaus wrote: > According to IBM Open XL C/C++ for z/OS version 1.1 builtins > > - vec_permi > - vec_ctd > - vec_ctsl > - vec_ctul > - vec_ld2f > - vec_st2f > > are deprecated. Also deprecate helper builtins vec_ctd_s64 and > vec_ctd_u64. > > Furthermore, t

[Committed] IBM Z: Fix -munaligned-symbols

2024-03-14 Thread Andreas Krebbel
With this fix we make sure that only symbols with a natural alignment smaller than 2 are considered misaligned with -munaligned-symbols. Background is that -munaligned-symbols is only supposed to affect symbols whose natural alignment wouldn't be enough to fulfill our ABI requirement of having all

Re: [PATCH] s390: testsuite: Fix abs-4.c

2024-03-21 Thread Andreas Krebbel
On 3/21/24 15:41, Stefan Schulze Frielinghaus wrote: > gcc/testsuite/ChangeLog: > > * gcc.dg/tree-ssa/abs-4.c: On s390 we also have a copysign optab > for long double. Thus, scan 3 instead of 2 times for it. > --- > Ok for mainline? Ok. Thanks! Andreas

Re: [PATCH] s390: testsuite: Fix backprop-6.c

2024-03-22 Thread Andreas Krebbel
On 3/22/24 10:49, Stefan Schulze Frielinghaus wrote: > gcc/testsuite/ChangeLog: > > * gcc.dg/tree-ssa/backprop-6.c: On s390 we also have a copysign > optab for long double. Thus, scan 3 instead of 2 times for it. > --- > OK for mainline? Ok. Thanks! Andreas

Re: [PATCH] libsanitizer: Do not mention MSan and DFSan in an error message

2024-04-04 Thread Andreas Krebbel
On 4/4/24 13:38, Ilya Leoshkevich wrote: > Bootstrapped and regtested on s390x-redhat-linux. Ok for master? > > > libsanitizer/ChangeLog: > > * sanitizer_common/sanitizer_linux_s390.cpp (AvoidCVE_2016_2143): > Do not mention MSan and DFSan, which are not supported by GCC. Ok, Thank

Re: [PATCH] libsanitizer: Do not mention MSan and DFSan in an error message

2024-04-04 Thread Andreas Krebbel
On 4/4/24 14:22, Jakub Jelinek wrote: > On Thu, Apr 04, 2024 at 02:19:08PM +0200, Andreas Krebbel wrote: >> On 4/4/24 13:38, Ilya Leoshkevich wrote: >>> Bootstrapped and regtested on s390x-redhat-linux. Ok for master? >>> >>> >>> libsaniti

Re: [PATCH] s390: Fix s390_const_int_pool_entry_p and movdi peephole2 [PR114605]

2024-04-08 Thread Andreas Krebbel
On 4/8/24 13:43, Ilya Leoshkevich wrote: > On Sat, 2024-04-06 at 18:58 +0200, Jakub Jelinek wrote: >> Hi! >> >> The following testcase is miscompiled, because we have initially >> a movti which loads the 0x3f803f80ULL TImode constant >> from constant pool.  Later on we split it into a pair

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

2024-04-09 Thread 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 permute. > > gcc/ChangeLog: > > * config/s390/s390.cc (expand_perm_as_replicate): Implem

Re: [PATCH] IBM Z: Preserve exceptions in autovec-*-signaling-eq.c tests

2024-02-19 Thread Andreas Krebbel
On 2/19/24 13:39, Ilya Leoshkevich wrote: > DSE, DCE, and other passes are removing redundant signaling comparisons > from these tests, but the whole point is to check that GCC knows how to > emit them. Use -fno-delete-dead-exceptions to prevent that. > > gcc/testsuite/ChangeLog: > > * g

Re: [PATCH] [s390] target/112280 - properly guard permute query

2024-01-11 Thread Andreas Krebbel
On 1/11/24 14:58, Richard Biener wrote: > The following adds guards avoiding code generation to > expand_perm_as_a_vlbr_vstbr_candidate when d.testing_p. > > Built and tested on the testcase in the PR. > > OK to push as obvious? Otherwise please pick up, test and push. Ok to commit now. Thanks

[Committed] IBM Z: Cover weak symbols with -munaligned-symbols

2023-12-18 Thread Andreas Krebbel
With the recently introduced -munaligned-symbols option byte-sized variables which are resolved externally are considered to be potentially misaligned. However, this should rather also be applied to symbols which resolve locally if they are weak. Done with this patch. Committed to mainline. gcc/C

Re: [PATCH] s390: Fix builtin-classify-type-1.c on s390 too [PR112725]

2023-11-30 Thread Andreas Krebbel
On 11/30/23 17:34, Jakub Jelinek wrote: > On Wed, Nov 29, 2023 at 07:27:20PM +0100, Jakub Jelinek wrote: >> Given that the s390 backend defines pretty much the same target hook >> as rs6000, I believe it suffers (at least when using -mvx?) the same >> problem as rs6000, though admittedly this is so

Re: [PATCH] s390x: Fix PR112753

2023-11-30 Thread Andreas Krebbel
On 11/30/23 16:45, Juergen Christ wrote: > Commit 466b100e5fee808d77598e0f294654deec281150 introduced a bug in > s390_md_asm_adjust if vector extensions are not available. Fix the control > flow of this function to not adjust long double values. > > gcc/ChangeLog: > > * config/s390/s390.cc

Re: [PATCH] testsuite: Fix up gcc.target/s390/pr96127.c test for modern C [PR96127]

2023-12-06 Thread Andreas Krebbel
On 12/3/23 19:36, Jakub Jelinek wrote: > Hi! > > I've noticed this test regressed on s390x-linux with the addition of the > switch to modern C patchset. Haven't tried to reproduce the ICE, but as it > was a backend ICE and FE after warning used to add such casts before (now > errors), I think thi

Re: [PATCH] s390: Fix expansion of vec_step

2023-12-06 Thread Andreas Krebbel
On 12/4/23 11:14, Stefan Schulze Frielinghaus wrote: > Add missing "s390" while expanding vec_step to __builtin_s390_vec_step. > > gcc/ChangeLog: > > * config/s390/vecintrin.h (vec_step): Expand vec_step to > __builtin_s390_vec_step. Ok, Thanks! Andreas

Re: [PATCH 1/3] s390: Recognize further vpdi and vmr{l,h} pattern

2023-11-09 Thread Andreas Krebbel
On 11/9/23 09:22, Stefan Schulze Frielinghaus wrote: > Deal with cases where vpdi and vmr{l,h} are still applicable if the > operands of those instructions are swapped. For example, currently for > > V2DI foo (V2DI x) > { > return (V2DI) {x[1], x[0]}; > } > > the assembler sequence > > vlgvg

Re: [PATCH 3/3] s390: Revise vector reverse elements

2023-11-09 Thread Andreas Krebbel
On 11/9/23 09:22, Stefan Schulze Frielinghaus wrote: > Replace UNSPEC_VEC_ELTSWAP with a vec_select implementation. > > Furthermore, for a vector reverse elements operation between registers > of mode V8HI perform three rotates instead of a vperm operation since > the latter involves loading the p

Re: [PATCH 2/3] s390: Add expand_perm_reverse_elements

2023-11-09 Thread Andreas Krebbel
On 11/9/23 09:22, Stefan Schulze Frielinghaus wrote: > Replace expand_perm_with_rot, expand_perm_with_vster, and > expand_perm_with_vstbrq with a general implementation > expand_perm_reverse_elements. > > Bootstrapped and regtested on s390. Ok for mainline? > > gcc/ChangeLog: > > * config

Re: [PATCH] s390: Reduce number of patterns where the condition is false anyway

2023-11-09 Thread Andreas Krebbel
On 11/9/23 09:24, Stefan Schulze Frielinghaus wrote: > For patterns which make use of two modes, do not build the cross product > and then exclude illegal combinations via conditions but rather do not > create those in the first place. Here we are following the idea of the > attribute TOINTVEC/toi

[Committed] IBM Z: Fix ICE with overloading and checking enabled

2023-11-14 Thread Andreas Krebbel
s390_resolve_overloaded_builtin, when called on NON_DEPENDENT_EXPR, ICEs when using the type from it which ends up as error_mark_node. This particular instance of the problem does not occur anymore since NON_DEPENDENT_EXPR has been removed. Nevertheless that case needs to be handled here. Bootst

[Committed] IBM Z: Add GTY marker to builtin data structures

2023-11-14 Thread Andreas Krebbel
This adds GTY markers to s390_builtin_types, s390_builtin_fn_types, and s390_builtin_decls. These were missing causing problems in particular when using builtins after including a precompiled header. Unfortunately the declaration of these data structures use enum values from s390-builtins.h. This

Re: [PATCH] s390: Fix vec_scatter_element for vectors of floats

2023-11-14 Thread Andreas Krebbel
On 11/14/23 12:44, Stefan Schulze Frielinghaus wrote: > The offset for vec_scatter_element of floats should be a vector of type > UV4SI instead of V4SF. Note, this is an incompatibility change. > > Bootstrapped on s390. Ok for mainline? > > gcc/ChangeLog: > > * config/s390/s390-builtin-t

Re: [PATCH] s390: Fix generation of s390-gen-builtins.h

2023-11-15 Thread Andreas Krebbel
On 11/15/23 14:29, Stefan Schulze Frielinghaus wrote: > By default the preprocessed output includes linemarkers. This leads to > an error if -pedantic is used as e.g. during bootstrap: > > s390-gen-builtins.h:1:3: error: style of line directive is a GCC extension > [-Werror] > > Fixed by omitti

Re: [PATCH] s390: Fix ICE in testcase pr89233

2023-11-23 Thread Andreas Krebbel
On 11/15/23 14:12, Juergen Christ wrote: > When using GNU vector extensions, an access outside of the vector size > caused an ICE on s390. Fix this by aligning with the vec_extract > builtin, i.e., computing constant index modulo number of lanes. > > Fixes testcase gcc.target/s390/pr89233.c. > >

Re: [PATCH] s390: split int128 load

2023-11-23 Thread Andreas Krebbel
On 11/15/23 14:15, Juergen Christ wrote: > 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/int12

Re: [PATCH] s390: implement flags output

2023-11-23 Thread Andreas Krebbel
On 11/15/23 14:15, Juergen Christ wrote: > Implement flags output for inline assemblies. Only use one output constraint > that captures the whole condition code. No breakout into different condition > codes is allowed. Also, only one condition code variable is allowed. > > Add further logic to

Re: [PATCH] s390: Fix builtins floating-point convert to/from fixed

2023-11-27 Thread Andreas Krebbel
Ok, thanks! Andreas On 11/27/23 10:11, Stefan Schulze Frielinghaus wrote: > Ping. > > On Tue, Nov 14, 2023 at 04:19:59PM +0100, Stefan Schulze Frielinghaus wrote: >> Remove flags for non-existing operands 2 and 3. >> >> Bootstrapped on s390. Ok for mainline? >> >> gcc/ChangeLog: >> >> * co

Re: [PATCH] s390: Fix constraint for insn *cmphi_ccu

2023-11-27 Thread Andreas Krebbel
Ok, thanks! Andreas On 11/27/23 10:12, Stefan Schulze Frielinghaus wrote: > Ping. > > On Wed, Oct 25, 2023 at 11:27:33AM +0200, Stefan Schulze Frielinghaus wrote: >> Currently for an unsigned 16-bit comparison between memory and an >> immediate where the high bit is set, a clc is emitted. This

Re: [PATCH] s390: Streamline NNPA builtins with their LLVM counterparts

2023-11-27 Thread Andreas Krebbel
Ok, thanks! Andreas On 11/27/23 10:12, Stefan Schulze Frielinghaus wrote: > Ping. > > On Thu, Nov 16, 2023 at 01:07:30PM +0100, Stefan Schulze Frielinghaus wrote: >> For the opaque NNP-data type prefer unsigned over signed integer types. >> >> gcc/ChangeLog: >> >> * config/s390/s390-builtin

Re: [PATCH] s390: Fixup builtins vec_rli and verll

2023-11-27 Thread Andreas Krebbel
On 11/27/23 10:53, Stefan Schulze Frielinghaus wrote: > Commit 248df13b966f46649e16dc3c8c92b263790ef503 restricted the rotate > count to immediates. Although the documentation of vec_rli (Vector > Element Rotate Left Immediate) can be read as if it where restricted to > immediates, this is not the

Re: [PATCH] s390: Add missing builtin type

2023-11-27 Thread Andreas Krebbel
On 11/27/23 13:38, Stefan Schulze Frielinghaus wrote: > One builtin type slipped through the cracks of the last commits. > > Bootstrapped on s390. Ok for mainline? > > gcc/ChangeLog: > > * config/s390/s390-builtin-types.def (BT_FN_UV8HI_UV8HI_UINT): > Add missing builtin type. Ok

Re: [PATCH] s390: Check for ADDR_REGS in s390_decompose_addrstyle_without_index

2024-06-27 Thread Andreas Krebbel
On 6/26/24 14:15, Stefan Schulze Frielinghaus wrote: An explicit check for address registers was not required so far since during register allocation the processing of address constraints was sufficient. However, address constraints themself do not check for REGNO_OK_FOR_{BASE,INDEX}_P. Thus, w

Re: [PATCH] s390: Align *cjump_64 and *icjump_64

2024-07-11 Thread Andreas Krebbel
On 7/11/24 16:29, Stefan Schulze Frielinghaus wrote: During machine reorg we optimize backward jumps and transform insns as e.g. (jump_insn 118 117 119 (set (pc) (if_then_else (ne (reg:CCRAW 33 %cc) (const_int 8 [0x8])) (label_ref 134) (pc)))

Re: [PATCH] s390: Fix output template for movv1qi

2024-07-11 Thread Andreas Krebbel
On 7/2/24 15:43, Stefan Schulze Frielinghaus wrote: Although for instructions MVI and MVIY it does not make a difference whether the immediate is interpreted as signed or unsigned, GAS expects unsigned immediates for instruction format SI_URD. gcc/ChangeLog: * config/s390/vector.md (mo

Re: [PATCH 0/3] Prepare and drop vcond expanders

2024-07-12 Thread Andreas Krebbel
On 7/1/24 10:32, Stefan Schulze Frielinghaus wrote: This drops vcond expanders. The first patch "s390: Emulate vec_cmp{eq,gt,gtu} for 128-bit integers" is somewhat independent of the other two, since we run already in ICEs. However, since after removing vcond expanders testsuite shows one addi

Re: [PATCH] s390: Fully exploit vgm, vgbm, vrepi

2024-07-12 Thread Andreas Krebbel
On 7/2/24 15:48, Stefan Schulze Frielinghaus wrote: Currently instructions vgm and vrepi are utilized only for constant vectors where the element mode equals the element mode of the corresponding instruction. This patch lifts this restriction by making use of those instructions for constant vect

Re: [PATCH] s390: Fix unresolved iterators bhfgq and xdee

2024-07-16 Thread Andreas Krebbel
On 7/16/24 10:29, Stefan Schulze Frielinghaus wrote: Code attribute bhfgq is missing a mapping for TF. This results in unresolved iterators in assembler templates for *bswaptf. With the TF mapping added the base mnemonics vlbr and vstbr are not "used" anymore but only the extended mnemonics (

Re: [PATCH] s390: Fix unresolved iterators bhfgq and xdee

2024-07-20 Thread Andreas Krebbel
On 7/20/24 08:39, Stefan Schulze Frielinghaus wrote: I'm pinging this early since I would like to make sure that it gets into 14.2 RC which is about to be done on Tuesday 23rd July. On Tue, Jul 16, 2024 at 04:50:29PM +0200, Stefan Schulze Frielinghaus wrote: Code attribute bhfgq is missing a

Re: [PATCH] s390: Implement TARGET_NOCE_CONVERSION_PROFITABLE_P [PR109549]

2024-05-16 Thread Andreas Krebbel
On 5/8/24 10:06, Stefan Schulze Frielinghaus wrote: > Consider a NOCE conversion as profitable if there is at least one > conditional move. > > gcc/ChangeLog: > > * config/s390/s390.cc (TARGET_NOCE_CONVERSION_PROFITABLE_P): > Define. > (s390_noce_conversion_profitable_p): Implem

Re: [PATCH] s390: Fix high-level builtins vec_gfmsum{,_accum}_128

2024-08-14 Thread Andreas Krebbel
On 8/8/24 20:28, Stefan Schulze Frielinghaus wrote: Starting with r14-9449-g9f2b16ce1efef0 builtins were streamlined with those in LLVM. In particular s390_vgfm{,a}g have been changed from UV16QI to UINT128 in order to match those in LLVM. However, these low-level builtins are directly used by

Re: [PATCH] s390: Remove vector intrinsics

2024-08-14 Thread Andreas Krebbel
On 8/8/24 20:29, Stefan Schulze Frielinghaus wrote: The following intrinsics are not implemented. Thus, remove them. Ok for mainline? gcc/ChangeLog: * config/s390/vecintrin.h (vec_vstbrh): Remove. (vec_vstbrf): Remove. (vec_vstbrg): Remove. (vec_vstbrq): Remove

[Committed] IBM Z: Fix ICE in expand_perm_as_replicate

2024-06-10 Thread Andreas Krebbel
The current implementation assumes to always be invoked with register operands. For memory operands we even have an instruction though (vlrep). With the patch we try this first and only if it fails force the input into a register and continue. vec_splats generation fails for single element 128bit

Re: [PATCH] s390: Extend two/four element integer vectors

2024-06-11 Thread Andreas Krebbel
On 6/11/24 10:24, Stefan Schulze Frielinghaus wrote: For the moment I deliberately left out one-element QHS vectors since it is unclear whether these are pathological cases or whether they are really used. If we ever get an extend for V1DI -> V1TI we should reconsider this. As a side-effect t

Re: [PATCH] s390: Extend two element float vector

2024-06-11 Thread Andreas Krebbel
On 6/11/24 10:26, Stefan Schulze Frielinghaus wrote: This implements a V2SF -> V2DF extend. gcc/ChangeLog: * config/s390/vector.md (*vmrhf): New. (extendv2sfv2df2): New. gcc/testsuite/ChangeLog: * gcc.target/s390/vector/vec-extend-3.c: New test. Since we already have

Re: [PATCH v2] s390: Implement TARGET_NOCE_CONVERSION_PROFITABLE_P [PR109549]

2024-06-13 Thread Andreas Krebbel
On 6/2/24 14:07, Stefan Schulze Frielinghaus wrote: Since the patch works fine so far for mainline, ok to backport to GCC 14? Yes please do. Thanks! Andreas On Fri, May 17, 2024 at 08:59:05AM +0200, Stefan Schulze Frielinghaus wrote: I've adapted the patch as follows and will push. Than

Re: [PATCH] s390: testsuite: Fix ifcvt-one-insn-bool.c

2024-06-13 Thread Andreas Krebbel
On Wed, Jun 05, 2024 at 08:00:15AM +0200, Stefan Schulze Frielinghaus wrote: With the change of r15-787-g57e04879389f9c I forgot to also update this test. gcc/testsuite/ChangeLog: * gcc.target/s390/ifcvt-one-insn-bool.c: Fix loc. Ok. Thanks! Andreas --- Ok for mainline? Ok for

Re: PING^1 [PATCH 44/52] s390: New hook implementation s390_c_mode_for_floating_type

2024-06-14 Thread Andreas Krebbel
On 6/13/24 09:43, Kewen.Lin wrote: Hi, Gentle ping: https://gcc.gnu.org/pipermail/gcc-patches/2024-June/653382.html BR, Kewen on 2024/6/3 11:01, Kewen Lin wrote: This is to remove macros {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE defines in s390 port, and add new port specific hook implementation s390

Re: [PATCH] s390: testsuite: Fix nobp-table-jump-*.c

2024-06-14 Thread Andreas Krebbel
On Mon, Jun 03, 2024 at 03:43:39PM +0200, Stefan Schulze Frielinghaus wrote: Starting with r14-5628-g53ba8d669550d3 interprocedural VRP became strong enough in order to render these tests useless. Fixed by disabling IPA. gcc/testsuite/ChangeLog: * gcc.target/s390/nobp-table-jump-inline

Re: [committed] testsuite: Add -Wno-psabi to vshuf-mem.C test

2024-06-17 Thread Andreas Krebbel
On 6/14/24 20:03, Jakub Jelinek wrote: Also wonder about the // { dg-additional-options "-march=z14" { target s390*-*-* } } line, doesn't that mean the test will FAIL on all pre-z14 HW? Shouldn't it use some z14_runtime or similar effective target, or check in main (in that case copied over to g+

Re: [PATCH] s390: testsuite: Xfail range-sincos.c and vrp-float-abs-1.c

2024-04-12 Thread Andreas Krebbel
On 4/12/24 10:16, Stefan Schulze Frielinghaus wrote: > As mentioned in PR114678 those failures will be fixed by > https://gcc.gnu.org/pipermail/gcc-patches/2024-March/648303.html > For GCC 14 just xfail them which should be reverted once the patch is > applied. > > gcc/testsuite/ChangeLog: > >

Re: [PATCH] s390: avoid peeking eof after __vector

2024-04-16 Thread Andreas Krebbel
On 4/17/24 03:52, Jiufu Guo wrote: > > Hi, > > I would like to ping this patch. > > > Jeff (Jiufu Guo) > > Jiufu Guo writes: > >> Hi, >> >> Same like PR101168, this patch is need for s390 to >> avoid peeking eof after vector keyword. >> And similar test case is also ok for s390. >> >> Is thi

Re: [PATCH] s390: testsuite: Remove xfail for vpopct{b,h}

2024-04-21 Thread Andreas Krebbel
On 4/22/24 08:01, Stefan Schulze Frielinghaus wrote: > Starting with r14-9316-g7890836de20912 patterns for vpopct{b,h} are also > detected. Thus, remove xfails. > > gcc/testsuite/ChangeLog: > > * gcc.target/s390/vxe/popcount-1.c: Remove xfail. Ok. Thanks! Andreas > --- > Ok for mainlin

Re: [PATCH] s390: testsuite: Fix forwprop-4{0,1}.c

2024-04-22 Thread Andreas Krebbel
Hi Stefan, due to that missed optimization we currently generate silly code for these two tests and should really fix this (after gcc entering stage1). So just skipping it on s390x would definitely be the wrong choice I think. I think our vectorize_vec_perm_const correctly rejects this permute

[Committed] s390x: Do not default to -mvx for -mesa

2024-04-22 Thread Andreas Krebbel
We currently enable the vector extensions also for -march=z13 -m31 mesa which is very wrong. Not a regression but an obvious fix, so I've committed it to mainline now. Will have to cherry-pick it for stable branches as well. gcc/ChangeLog: * config/s390/s390.cc (s390_option_override_inte

[Committed] s390x: Fix vec_xl/vec_xst type aliasing [PR114676]

2024-04-23 Thread Andreas Krebbel
The requirements of the vec_xl/vec_xst intrinsincs wrt aliasing of the pointer argument are not really documented. As it turns out, users are likely to get it wrong. With this patch we let the pointer argument alias everything in order to make it more robust for users. Committed to mainline. Wil

Re: [PATCH] s390: testsuite: Fix zero_bits_compound-1.c

2024-04-30 Thread Andreas Krebbel
On 4/30/24 10:32, Stefan Schulze Frielinghaus wrote: > Starting with r12-2731-g96146e61cd7aee we do not generate code like > > _5 = (unsigned int) c_2(D); > i_6 = _5 << 8; > _7 = _5 << 20; > i_8 = i_6 | _7; > > anymore but instead > > _5 = (unsigned int) c_2(D); > _3 = _5 * 1048832; > > which l

Re: [PATCH] s390: testsuite: Fix risbg-ll-2.c

2024-04-30 Thread Andreas Krebbel
On 4/30/24 10:34, Stefan Schulze Frielinghaus wrote: > Starting with r14-2047-gd0e891406b16dc we see through subregs which > means for f10 in risbg-ll-2.c we do not end up with rosbg_si_noshift but > rather rosbg_di_noshift which materializes in slightly different start > index. This saves us an e

Re: [PATCH] s390: Fix TF to FPRX2 conversion [PR115860]

2024-09-11 Thread Andreas Krebbel
Ok, Thanks! Andreas On 8/16/24 09:41, Stefan Schulze Frielinghaus wrote: Currently subregs originating from *tf_to_fprx2_0 and *tf_to_fprx2_1 survive register allocation. This in turn leads to wrong register renaming. Keeping the current approach would mean we need two insns for *tf_to_fprx2_

Re: [PATCH] s390: Fix TF to FPRX2 conversion [PR115860]

2024-09-11 Thread Andreas Krebbel
On 9/12/24 08:14, Stefan Schulze Frielinghaus wrote: .. Right, so offsettable_memref_p only ensures that any resulting address is a valid general address.  So we have to manually check for short displacement. Maybe something along the lines: diff --git a/gcc/config/s390/s390.cc b/gcc/config/s

Re: [PATCH] s390: Fix strict_low_part generation

2024-09-11 Thread Andreas Krebbel
On 8/16/24 09:14, Stefan Schulze Frielinghaus wrote: In s390_expand_insv(), if generating code for ICM et al. src is a MEM and gen_lowpart might force src into a register such that we end up with patterns which do not match anymore. Use adjust_address() instead in order to preserve a MEM. Furth

[PING] 3 patches waiting for approval/review

2013-08-21 Thread Andreas Krebbel
[RFC] Allow functions calling mcount before prologue to be leaf functions http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00993.html [PATCH] PR57377: Fix mnemonic attribute http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01364.html [PATCH] Doc: Add documentation for the mnemonic attribute http://gcc.gn

Re: [PATCH] Enable non-complex math builtins from C99 for Bionic

2013-08-22 Thread Andreas Krebbel
On Wed, Aug 21, 2013 at 11:21:32PM +0400, Alexander Ivchenko wrote: > I'm sorry for that. The following patch cured my build of those > targets; it is also preserving the initial presence of c99. There were > plenty of targets that were changed by my patch, I hope this time I > didn't miss anything

[PING] 3 patches waiting for approval/review

2013-09-03 Thread Andreas Krebbel
[RFC] Allow functions calling mcount before prologue to be leaf functions http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00993.html [PATCH] PR57377: Fix mnemonic attribute http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01364.html [PATCH] Doc: Add documentation for the mnemonic attribute http://gcc.gn

[PATCH] S/390: Use fast BCR serialization facility.

2013-09-03 Thread Andreas Krebbel
and later. The bcr variants used for synchronization purposes always go into their own dispatch group. This wasn't correctly implemented for z196 and zEC12 so far. I'll commit the patch after regression tests passed. Bye, -Andreas- 2013-09-03 Andreas Krebbel * config/s3

[PATCH] S/390: Add support for the "load fp integer" instructions

2013-09-03 Thread Andreas Krebbel
ard math.h functions. The DFP variants are not yet expanded for the standard math function since the necessary GCC builtins are missing so far. I'll commit the patch after waiting for comments and regression test. Bye, -Andreas- 2013-09-03 Andreas Krebbel * config/s390/s390.md (UNS

[PING] 3 patches waiting for approval/review

2013-10-01 Thread Andreas Krebbel
[RFC] Allow functions calling mcount before prologue to be leaf functions http://gcc.gnu.org/ml/gcc-patches/2013-04/msg00993.html [PATCH] PR57377: Fix mnemonic attribute http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01364.html [PATCH] Doc: Add documentation for the mnemonic attribute http://gcc.gn

[Committed] S/390: Fix PR 58574

2013-10-01 Thread Andreas Krebbel
e 4.8 version and will commit it soon. Bye, -Andreas- 2013-10-01 Jakub Jelinek Andreas Krebbel PR target/58574 * config/s390/s390.c (s390_split_branches): Modify check for table jump insns. (s390_chunkify_start): Rearrange table jump insn check in ord

Re: [PING] 3 patches waiting for approval/review

2013-10-02 Thread Andreas Krebbel
On 02/10/13 09:10, Paulo Matos wrote: > >> -Original Message- >> From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches-ow...@gcc.gnu.org] On >> Behalf Of Andreas Krebbel >> Sent: 01 October 2013 10:18 >> To: gcc-patches@gcc.gnu.org >> Subject

[PATCH][4.8] S/390: Transactional memory fixes

2013-10-02 Thread Andreas Krebbel
s390x with --with-arch=zEC12. I'll apply the patch to mainline and 4.8 branch after waiting for comments. Bye, -Andreas- 2013-10-02 Andreas Krebbel * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry") ("tbegin_retry_nofloat&

  1   2   3   4   5   6   7   8   9   10   >