[to-be-committed][RISC-V] Improve initial code generation for addsi/adddi

2025-08-11 Thread Jeff Law
This is a patch primarily from Shreya, though I think she cribbed some code from Philipp that we had internally within Ventana and I made some minor adjustments as well. So the basic idea here is similar to her work on logical ops -- specifically when we can generate more efficient code at exp

[committed][RISC-V] Don't run tests requiring "B" on designs without "B"

2025-08-11 Thread Jeff Law
926248780bb344327a15485 Author: Jeff Law Date: Mon Aug 11 08:13:51 2025 -0600 Don't run tests requiring "B" on designs without "B" So I resurrected our milkv pioneer over the weekend. While we had the tell-tale signs of PCIE switch issues, it actually

Re: [PATCH] Add ia64*-*-* to the list of obsolete targets

2025-08-10 Thread Jeff Law
On 8/10/25 3:24 PM, Andrew Pinski wrote: On Fri, Feb 23, 2024 at 12:33 AM Jeff Law wrote: On 2/23/24 01:05, Richard Biener wrote: The following deprecates ia64*-*-* for GCC 14. Since we plan to force LRA for GCC 15 and the target only has slim chances of getting updated this notifies

Re: [PATCH v2 1/1] Make MSA and microMIPS R5 unsupported

2025-08-10 Thread Jeff Law
On 7/27/25 2:50 PM, Aleksandar Rakic wrote: From: Aleksandar Rakic There are no platforms nor simulators for MSA and microMIPS R5 so turning off this support for now. gcc/ChangeLog: * config/mips/mips.cc (mips_option_override): Error out for -mmicromips -mmsa for MIPSr5 and

Re: [PATCH 0/1] Make MSA and microMIPS R5 unsupported

2025-08-10 Thread Jeff Law
On 7/27/25 2:49 PM, Aleksandar Rakic wrote: I tried to use just "TARGET_MICROMIPS" instead of "is_micromips", but the compiler optimized "TARGET_MICROMIPS" away for some reason and encoded it as "false". That sounds like it's worth debugging; in general a TARGET_XXX macro shouldn't have a con

Re: [PATCH v2 01/10] Add -mgrow-frame-downwards

2025-08-10 Thread Jeff Law
On 7/27/25 11:00 AM, Aleksandar Rakic wrote: Public Hi, I was going to apply this patch as it seems reasonable and independent of everything else. But unfortunately it appears that you have munged tabs into spaces. While we could potentially use "-l" to ignore that problem and allow the p

Re: [PATCH 3/3] regrename: treat writes as reads for fused instruction pairs

2025-08-10 Thread Jeff Law
On 7/27/25 3:35 AM, Artemiy Volkov wrote: From: Artemiy Volkov Consider the following (RISC-V) instruction pair: mul s6,a1,a2 add s6,a4,s6 Without this patch, while handling the second instruction, (a) the existing chain for s6 will first be closed (upon the terminate_write action for the

Re: [PATCH 2/3] ira: tie output allocnos for fused instruction pairs

2025-08-10 Thread Jeff Law
On 7/27/25 3:35 AM, Artemiy Volkov wrote: From: Artemiy Volkov Some of the instruction pairs recognized as fusible by a preceding invocation of the dep_fusion pass require that both components of a pair have the same hard register output for the fusion to work in hardware. (An example of thi

Re: [PATCH v1] RISC-V: Refactor the vec_duplicate cost on gpr/fpr2vr-cost param

2025-08-10 Thread Jeff Law
On 8/6/25 8:29 AM, pan2...@intel.com wrote: From: Pan Li The previous cost value for vec_duplicate almost bases on the operators like add/minus. The rtx_cost function try to match them case by case and find if it has vec_duplicate, then update the cost values. It is Ok when we initially ad

Re: [PATCH v2 2/2] varasm: Redo mergeable section support [PR121438]

2025-08-10 Thread Jeff Law
On 8/7/25 8:55 PM, Andrew Pinski wrote: We increased the switch conversion array decl alignment for better mergeability but it turns out that we increase the alignment on targets which don't support mergeable sections (e.g. NVPTX). Also after the fix for PR 121394, it becomes obvious that we c

Re: [PATCH v2 1/2] varasm: Ensure each variable in mergeable section is the entity size [PR121394]

2025-08-10 Thread Jeff Law
On 8/7/25 8:55 PM, Andrew Pinski wrote: Now there are mergeable sections which have an entity size, we can place decls (constants) that are smaller in size in these sections. An example is an `long double` which has a size of 12 bytes on i686 and is placed in the 16 bytes shareable section. F

Re: [PING*4][PATCH 1/1] config: Handle dash in library name for AC_LIB_LINKAGEFLAGS_BODY

2025-08-10 Thread Jeff Law
On 7/30/25 3:29 PM, Joseph Myers wrote: On Tue, 15 Jul 2025, Ijaz, Abdul B wrote: config/ChangeLog: * lib-link.m4: Handle dash in the library name for AC_LIB_LINKFLAGS_BODY. OK. THanks. I kept meaning to look at this older patch, but never found the time. I've pushed i

Re: [PATCH] RISC-V: Expand const_vector with 2 elts per pattern.

2025-08-10 Thread Jeff Law
On 8/4/25 3:09 AM, Robin Dapp wrote: Hi, In PR121334 we are asked to expand a const_vector of size 4 with poly_int elements.  It has 2 elts per pattern so is neither a const_vector_duplicate nor a const_vector_stepped. We don't allow this kind of constant in legitimate_constant_p but expr ap

Re: [PATCH] simplify-rtx: Distribute some non-narrowing subregs [PR121306]

2025-08-10 Thread Jeff Law
On 8/8/25 3:31 AM, Richard Sandiford wrote: In g:965564eafb721f813a3112f1bba8d8fae32b I'd added code to try distributing non-widening subregs through logic ops, in cases where that would eliminate a term of the logic op. For "reasons", this indirectly caused combine to generate: (set

Re: [PATCH] RISC-V: Fix some generic-vector-ooo pipeline description issues

2025-08-09 Thread Jeff Law
On 7/28/25 2:40 AM, Anton Blanchard wrote: The crypto type covers scalar (not vector) crypto instructions, and vclz and vctz appear in two places. gcc/ChangeLog: * config/riscv/generic-vector-ooo.md (vec_crypto): Remove crypto, vclz, vctz from insn reservation, rename to vec_

PSA: Testing infrastructure

2025-08-06 Thread Jeff Law
So just an FYI. My entire testing infrastructure system lost its mind over the last week or so. Initially it was just failing to record testresults, then is stopped running jobs. No idea why Jenkins lost its mind -- it's running inside a docker container and shouldn't have had anything ch

Re: [PATCH 2/7 v2] RISC-V: Add support for the XAndesperf ISA extension.

2025-08-05 Thread Jeff Law
On 7/30/25 6:07 PM, KuanLin Chen wrote: Please find: https://github.com/andestech/andes-v5-isa/releases/tag/ast-v5_4_0-release These instructions are from "3.1.26. NDS.FFB" to "3.1.29. NDS.FLMISM" in AndeStar_V5_ISA_Spec_UM165-v1.5.08-20250317.pdf. Thanks, definitely helpful to see what those

Re: [PATCH] RISC-V: Read extension data from riscv-ext*.def for arch-canonicalize

2025-08-04 Thread Jeff Law
On 7/31/25 2:35 AM, Kito Cheng wrote: Previously, arch-canonicalize used hardcoded data to handle IMPLIED_EXT. But this data often got out of sync with the actual C++ implementation. Earlier, we introduced riscv-ext.def to keep track of all extension info and generate docs. Now, arch-canonical

Re: [PATCH v1] RISC-V: Fix scalar code-gen of unsigned SAT_MUL

2025-08-04 Thread Jeff Law
On 8/3/25 8:19 PM, Li, Pan2 wrote: Thanks Jeff. OK. Any change we could get run test for this in addition to the scanners? I tried to add run test target this but seems happen to work here for mulhsu. Here we only cares the result(high bits of mul) has values or not, looks like mulhsu wi

Re: [PATCH v1] RISC-V: Fix scalar code-gen of unsigned SAT_MUL

2025-08-03 Thread Jeff Law
On 7/30/25 11:22 PM, pan2...@intel.com wrote: From: Pan Li The previous code-gen of scalar unsigned SAT_MUL, aka usmul. Leverage the mulhs by mistake, it should be mulhu for the hight bit result of mul. Thus, this patch would like to make it correct. gcc/ChangeLog: * config/riscv/

Re: [PATCH 2/7 v2] RISC-V: Add support for the XAndesperf ISA extension.

2025-07-30 Thread Jeff Law
On 7/29/25 7:41 PM, KuanLin Chen wrote: + +;; +;; +;; +;;String Extension +;; +;; +;; + +(define_insn "riscv_nds_ffb" + [(set (match_operand:GPR 0 "register_operand" "=r") + (unspec:GPR [(match_operand:GPR 1 "reg_or_0_operand" "rJ") +

Re: [PATCH] asf: Fix case of multiple stores with base offset [PR120660]

2025-07-29 Thread Jeff Law
On 7/28/25 3:38 AM, Konstantinos Eleftheriou wrote: When having multiple stores with the same offset as the load, in the case that we are eliminating the load, we were generating a mov instruction for both of them, leading to the overwrite of the register containing the loaded value. This pat

Re: [PATCH] simplify-rtx: Simplify subregs of logic ops

2025-07-29 Thread Jeff Law
On 7/29/25 7:41 AM, Richard Sandiford wrote: This patch adds a new rule for distributing lowpart subregs through ANDs, IORs, and XORs with a constant, in cases where one of the terms then disappears. For example: (lowart-subreg:QI (and:HI x 0x100)) simplifies to zero and (lowart-subr

Re: [PATCH v2] asf: Skip when an instruction doesn't satisfy the constraints [PR119795]

2025-07-29 Thread Jeff Law
On 7/28/25 5:00 AM, Konstantinos Eleftheriou wrote: While scanning the instructions and upon reaching an instruction that doesn't satisfy the constraints that we have set, we were removing the already detected stores, but we were continuing adding stores from that point onward. This was causin

Re: [PATCH] RISC-V: Remove use of structured binding to fix compiler warning

2025-07-29 Thread Jeff Law
On 7/28/25 9:39 AM, Christoph Müllner wrote: Function riscv_ext_is_subset () uses structured bindings to iterate over all keys and values of an unordered map. However, this is only available since C++17 and causes a warning like this: warning: structured bindings only available with ‘-std=

Re: [PATCH] RISC-V: Fix some generic-vector-ooo pipeline description issues

2025-07-28 Thread Jeff Law
On 7/28/25 3:23 AM, Robin Dapp wrote: -;; Vector crypto, assumed to be a generic operation for now. -(define_insn_reservation "vec_crypto" 4 +;; Vector population count +(define_insn_reservation "vec_pop" 4    (and (eq_attr "tune" "generic_ooo,generic") -   (eq_attr "type" "crypto,vclz,vct

Re: [PATCH 0/3] Consider non-consecutive instructions for macro-op

2025-07-27 Thread Jeff Law
On 7/27/25 3:35 AM, Artemiy Volkov wrote: Hi all, This small patch series is intended to address a shortcoming of the scheduler, which currently only identifies and preserves fusible instruction pairs (according to the value of the TARGET_SCHED_MACRO_FUSION_PAIR_P hook) that are already conse

Re: [PATCH] ifcvt: Clarify if_info.original_cost.

2025-07-26 Thread Jeff Law
On 11/7/24 10:36 AM, Robin Dapp wrote: I think it'd be better if I abstain from this. I probably disagree too much with the current structure and the way that the code is developing. I won't object if anyone else approves it though. It's not that I'm happy with the current state either and

Re: [PATCH] asf: Skip when an instruction doesn't satisfy the constraints [PR119795]

2025-07-26 Thread Jeff Law
On 7/22/25 4:19 AM, Konstantinos Eleftheriou wrote: While scanning the instructions and upon reaching an instruction that doesn't satisfy the constraints that we have set, we were removing the already detected stores, but we were continuing adding stores from that point onward. This was causin

Re: [PATCH v2 01/10] Add -mgrow-frame-downwards

2025-07-26 Thread Jeff Law
On 7/23/25 5:41 AM, Aleksandar Rakic wrote: Public Hi, Could you please let us know if you have any comments on this patch? Kind regards, Aleksandar Rakic From: Aleksandar Rakic Sent: Monday, March 17, 2025 2:23 PM To: gcc-patches@gcc.gnu.org Cc: D

Re: [PATCH v6 18/19] c/aarch64: Add FMV diagnostic tests.

2025-07-26 Thread Jeff Law
On 6/12/25 11:03 AM, Alfie Richards wrote: Adds some aarch64 C fmv diagnostic tests. This mostly tests C front end code, but has to be target specific at FMV is requires specifying target extensions. gcc/testsuite/ChangeLog: * gcc.target/aarch64/mv-and-mvc-error1.c: New test.

Re: [PATCH v6 16/19] aarch64: Remove FMV beta warning.

2025-07-26 Thread Jeff Law
On 6/12/25 11:03 AM, Alfie Richards wrote: This patch removes the warning for target_version and target_clones in aarch64 as it is now spec compliant. gcc/ChangeLog: * config/aarch64/aarch64.cc (aarch64_process_target_version_attr): Remove warning. * config/aarch64/aa

Re: [PATCH v6 15/19] aarch64: testsuite: Add diagnostic tests for Aarch64 FMV.

2025-07-26 Thread Jeff Law
On 6/12/25 11:03 AM, Alfie Richards wrote: Add tests covering many FMV errors for Aarch64, including redeclaration, and mixing target_clones and target_versions. gcc/testsuite/ChangeLog: * g++.target/aarch64/mv-and-mvc-error1.C: New test. * g++.target/aarch64/mv-and-mvc-error

Re: [PATCH v6 10/19] fmv: Change target_version semantics to follow ACLE specification.

2025-07-26 Thread Jeff Law
On 6/12/25 11:00 AM, Alfie Richards wrote: This patch changes the semantics of target_version and target_clones attributes to match the behavior described in the Arm C Language extension. The changes to behavior are: - The scope and signature of an FMV function set is now that of the default

Re: [PATCH v6 07/19] fmv: Refactor FMV name mangling.

2025-07-26 Thread Jeff Law
On 6/12/25 10:53 AM, Alfie Richards wrote: This patch is an overhaul of how FMV name mangling works. Previously mangling logic was duplicated in several places across both target specific and independent code. This patch changes this such that all mangling is done in targetm.mangle_decl_assemb

Re: [PATCH] [15 backport] [RISC-V] Correct CFA notes for stack-clash protection [PR120714]

2025-07-25 Thread Jeff Law
On 7/24/25 1:53 AM, Andreas Schwab wrote: From: Alexey Merzlyakov Fixes incorrect SP-addresses used in CFA notes for the stack probes unrelative to the frame's top. It applied to the RISC-V targets code generation when the stack-clash protection is enabled. PR target/120714 gcc/Chan

Re: [PATCH v1 0/2] Avoid RVV fixed insn VX combine pollute VXRM

2025-07-23 Thread Jeff Law
On 7/22/25 11:06 PM, pan2...@intel.com wrote: From: Pan Li The RVV fixed point insn VX combine should focus on the insn itself, instead of any standard name like avg_floor, the vxrm should be the value of insn as is. The below test suites are passed for this patch series. * The rv64gcv full

Re: [PATCH] RISC-V: Rework broadcast handling [PR121073].

2025-07-22 Thread Jeff Law
On 7/22/25 3:03 AM, Robin Dapp wrote: Hi, During the last weeks it became clear that our current broadcast handling needs an overhaul in order to improve maintainability. PR121073 showed that my intermediate fix wasn't enough and caused regressions. This patch now goes a first step towards u

Re: [PATCH] zlib: import zlib-1.3.1

2025-07-22 Thread Jeff Law
On 7/20/25 6:54 PM, Sam James wrote: This is vanilla zlib-1.3.1 imported over the existing zlib/ dir with: * README adjusted to add the GCC note at the top; * GCC's ChangeLog merged with the upstream one, as before; * Deleted upstream Makefile as has been done before (we use an autoconf- ge

Re: [PATCH] RISC-V: testsuite: Fix vx_vf_*run-1-f16.c run tests.

2025-07-22 Thread Jeff Law
On 7/22/25 3:04 AM, Robin Dapp wrote: Hi, This patch fixes the vf_vfmacc-run-1-f16.c test failures on rv32 by adding zvfh requirements as well as options to the test and the target harness. Regtested on rv64gcv_zvl512b and rv32gcv_zvl512b.  Going to commit as obvious if the CI agrees that it

[to-be-committed][RISC-V] Restrict generic-vector-ooo DFA

2025-07-21 Thread Jeff Law
So while debugging Austin's work to support the spacemit x60 in the BPI we found that even though his pipeline description had mappings for all the vector instructions, they were still getting matched by the generic-vector-ooo DFA. The core problem is that DFA never restricted itself to a tune

Re: [PATCH v3] Change __builtin_unreachable to __builtin_trap (or infinite loop) if only thing in function [PR109267]

2025-07-21 Thread Jeff Law
On 7/19/25 2:22 PM, Andrew Pinski wrote: When we have an empty function, things can go wrong with cfi_startproc/cfi_endproc and a few other things like exceptions. So if the only thing the function does is a call to __builtin_unreachable, let's replace that with a __builtin_trap instead if the

Re: [PATCH v3] Change __builtin_unreachable to __builtin_trap (or infinite loop) if only thing in function [PR109267]

2025-07-21 Thread Jeff Law
On 7/21/25 5:59 PM, Andrew Pinski wrote: On Mon, Jul 21, 2025 at 4:46 PM Jeff Law wrote: On 7/19/25 2:22 PM, Andrew Pinski wrote: When we have an empty function, things can go wrong with cfi_startproc/cfi_endproc and a few other things like exceptions. So if the only thing the function

Re: [PATCH v3] Change __builtin_unreachable to __builtin_trap (or infinite loop) if only thing in function [PR109267]

2025-07-21 Thread Jeff Law
On 7/19/25 2:22 PM, Andrew Pinski wrote: When we have an empty function, things can go wrong with cfi_startproc/cfi_endproc and a few other things like exceptions. So if the only thing the function does is a call to __builtin_unreachable, let's replace that with a __builtin_trap instead if the

Re: [PATCH 4/7 v2] RISC-V: Add support for the XAndesvbfhcvt ISA extension.

2025-07-21 Thread Jeff Law
On 7/11/25 2:57 AM, Kuan-Lin Chen wrote: This patch add support for XAndesvbfhcvt ISA extension. This extension defines instructions to perform vector floating-point conversion between the BFLOAT16 floating-point data and the IEEE-754 32-bit single-precision floating-point (SP) data in a vecto

Re: [PATCH 3/7 v2] RISC-V: Add support for the XAndesbfhcvt ISA extension.

2025-07-21 Thread Jeff Law
On 7/11/25 2:57 AM, Kuan-Lin Chen wrote: This extension defines instructions to perform scalar floating-point conversion between the BFLOAT16 floating-point data and the IEEE-754 32-bit single-precision floating-point (SP) data in a scalar floating point register. gcc/ChangeLog: * co

Re: [PATCH 2/7 v2] RISC-V: Add support for the XAndesperf ISA extension.

2025-07-21 Thread Jeff Law
On 7/11/25 2:57 AM, Kuan-Lin Chen wrote: This patch adds support for the XAndesperf ISA extension. The 32-bit AndeStar V5 extension includes branch instructions, load effective address instructions, and string processing instructions for performance improvement. New INSN patterns are added int

Re: [PATCH 1/7 v2] RISC-V: Add basic XAndes vendor extension support.

2025-07-21 Thread Jeff Law
On 7/11/25 2:57 AM, Kuan-Lin Chen wrote: This patch add basic support for the following XAndes ISA extensions: XANDESPERF XANDESBFHCVT XANDESVBFHCVT XANDESVSINTLOAD XANDESVPACKFPH XANDESVDOT gcc/ChangeLog: * config/riscv/riscv-ext.def: Include riscv-ext-andes.def. * config/r

Re: [PATCH v2] RISC-V: Improve bswap8 when zbb is enabled

2025-07-21 Thread Jeff Law
On 7/17/25 7:45 AM, Dusan Stojkovic wrote: Hi Jeff, So I'm not sure this transformation is correct. Let's consider the case where a5 has the value 0x at the "li" instruction. a5 = 0xff00 li a4, -65536 // a4 = 0x srai a5,a5,32 // a5 = 0xf

[to-be-committed][RISC-V] Add missing insn types to xiangshan.md and mips-p8700.md

2025-07-21 Thread Jeff Law
This is a trivial patch to add a few missing types to pipeline models that are mostly complete. In particular this adds the "ghost" to mips-p8700.md and the "sv_vc" and "sf_vc_se" types to xiangshan.md. There are definitely some bigger issues to solve in this space. But this is a trivial fi

Re: [PATCH] [RISC-V] Fix wrong CFA during stack probe

2025-07-19 Thread Jeff Law
On 7/16/25 7:04 AM, Andreas Schwab wrote: PR target/121121 * config/riscv/riscv.cc (riscv_allocate_and_probe_stack_space): Use temp2 instead of temp1 for the CFA note. --- gcc/config/riscv/riscv.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/g

Re: [PATCH] RISC-V: Vector-scalar widening negate-multiply-(subtract-)accumulate [PR119100]

2025-07-19 Thread Jeff Law
On 7/16/25 8:38 AM, Paul-Antoine Arras wrote: This pattern enables the combine pass (or late-combine, depending on the case) to merge a float_extend'ed vec_duplicate into a (possibly negated) minus-mult RTL instruction. Before this patch, we have six instructions, e.g.: vsetivli zero

Re: [PATCH v5 0/3] Hard Register Constraints

2025-07-19 Thread Jeff Law
On 7/17/25 2:24 AM, Stefan Schulze Frielinghaus wrote: On Wed, Jul 09, 2025 at 03:48:43PM +0200, Stefan Schulze Frielinghaus wrote: This is a follow-up to https://gcc.gnu.org/pipermail/gcc-patches/2025-May/684181.html I added the last missing pieces namely changelogs, and bootstrapped and re

Re: [PATCH v1] RISC-V: Support RVVDImode for avg3_ceil auto vect

2025-07-19 Thread Jeff Law
On 7/18/25 7:06 AM, Li, Pan2 wrote: OK. Curious if you've seen this show up in practice and is using the vaaddu and similar instructions actually profitable? I remember avg will be presented in somewhere else but not for DImode. I tried to add vaadd related vx combine and notice we don't ha

Re: [PATCH] RISC-V: prevent NULL_RTX dereference in riscv_macro_fusion_pair_p ()

2025-07-19 Thread Jeff Law
On 7/18/25 12:29 PM, Artemiy Volkov wrote: On Fri, Jul 18, 2025 at 11:42:59AM -0600, Jeff Law wrote: On 7/18/25 11:03 AM, Artemiy Volkov wrote: On Wed, Jul 02, 2025 at 08:15:40PM -0600, Jeff Law wrote: A number of folks have had their fingers in this code and it's going to take

Re: [PATCH v1] RISC-V: Add ashiftrt operand 2 for vector avg_floor and avg_ceil

2025-07-19 Thread Jeff Law
On 7/19/25 3:37 AM, pan2...@intel.com wrote: From: Pan Li According to the semantics of the avg_floor and avg_ceil as below: floor: op0 = (narrow) (((wide) op1 + (wide) op2) >> 1); ceil: op0 = (narrow) (((wide) op1 + (wide) op2 + 1) >> 1); Aka we have (const_int 1) as the op2 of the ashif

Re: [PATCH v1] RISC-V: Refine the test case for vector avg_floor and avg_ceil [NFC]

2025-07-19 Thread Jeff Law
On 7/18/25 8:49 PM, pan2...@intel.com wrote: From: Pan Li The previous test case doesn't leverage the right test helper macro, it should be DEF_AVG_0_WRAP instead of DEF_AVG_0. We prefer the test function name is test_avg_floor_int64_t_int32_t_0 instead of test_avg_floor_WT_NT_0 for DEF_AVG

Re: [PATCH] RISC-V: prevent NULL_RTX dereference in riscv_macro_fusion_pair_p ()

2025-07-18 Thread Jeff Law
On 7/18/25 11:03 AM, Artemiy Volkov wrote: On Wed, Jul 02, 2025 at 08:15:40PM -0600, Jeff Law wrote: A number of folks have had their fingers in this code and it's going to take a few submissions to do everything we want to do. This patch is primarily concerned with avoiding signaling

Re: [patch,wwwdocs] Remove cr16, tilegx, tilepro from backends.html

2025-07-18 Thread Jeff Law
On 7/18/25 8:37 AM, Georg-Johann Lay wrote: Ok to apply removal of backends no more present in v13? Yes. jeff

Re: [PATCH v1] RISC-V: Support RVVDImode for avg3_ceil auto vect

2025-07-17 Thread Jeff Law
On 7/16/25 8:22 AM, pan2...@intel.com wrote: From: Pan Li Like the avg3_floor pattern, the avg3_ceil has the similar issue that lack of the RVV DImode support. Thus, this patch would like to support the DImode by the standard name, with the iterator V_VLSI_D. The below test suites are pass

Re: [PATCH 1/2] cprop: Allow jump bypassing for single set insns

2025-07-17 Thread Jeff Law
On 7/16/25 9:20 AM, Stefan Schulze Frielinghaus wrote: During jump bypassing also consider insns of the form (insn 25 57 26 9 (parallel [ (set (reg:CCZ 33 %cc) (compare:CCZ (reg:SI 60 [ _9 ]) (const_int 0 [0]))) (clobber (scratch

Re: [PATCH v5] RISC-V: Mips P8700 Conditional Move Support.

2025-07-15 Thread Jeff Law
On 7/14/25 11:34 PM, Umesh Kalappa wrote: Updated the test for rv32 accordingly and no regress found for runs like "runtest --tool gcc --target_board='riscv-sim/-march=rv32gc_zba_zbb_zbc_zbs/-mabi=ilp32d/-mcmodel=medlow' riscv.exp" and "runtest --tool gcc --target_board='riscv-sim/-march=rv

Re: [PATCH] RISC-V: Improve bswap8 when zbb is enabled

2025-07-15 Thread Jeff Law
On 7/10/25 8:44 AM, Dusan Stojkovic wrote: This peephole pattern combines the following instructions: bswap8: rev8a5,a0 -> li a4,-65536 -> sraia5,a5,32 -> and a5,a5,a4 -> roriw a5,a5,16 and a0,a0,a4 or a

Re: [PATCH] RISC-V: Fix vsetvl merge rule.

2025-07-15 Thread Jeff Law
On 7/14/25 7:55 AM, Robin Dapp wrote: Hi, In PR120297 we fuse  vsetvl e8,mf2,...  vsetvl e64,m1,... into  vsetvl e64,m4,... Individually, that's ok but we also change the new vsetvl's demand to "SEW only" even though the first original one demanded SEW >= 8 and ratio = 16. As we forget t

Re: [PATCH v1] RISC-V: Refine the scalar SAT_* test cases

2025-07-14 Thread Jeff Law
On 7/12/25 8:26 AM, pan2...@intel.com wrote: From: Pan Li Per previous discuss with Jeff, we don't do complicated asm check like scalar saturation alu. It is somehow not easy to maintain, as well as fragile. Thus, we remove these function-body check, and introduce the jmp label asm check i

Re: [PATCH v2 2/2] RISC-V: Add testcase for rv32 SAT_MUL from uint64

2025-07-14 Thread Jeff Law
On 7/12/25 2:58 AM, pan2...@intel.com wrote: From: Pan Li Add the run and asm testcase for rv32 SAT_MUL, widen mul from uint8_t, uint16_t, uint32_t to uint64_t. gcc/testsuite/ChangeLog: * gcc.target/riscv/sat/sat_u_mul-1-u16-from-u64.c: New test. * gcc.target/riscv/sat/sat_

Re: [PATCH v2] RISC-V: Vector-scalar widening multiply-(subtract-)accumulate [PR119100]

2025-07-14 Thread Jeff Law
On 7/14/25 2:52 AM, Robin Dapp wrote: This pattern enables the combine pass (or late-combine, depending on the case) to merge a float_extend'ed vec_duplicate into a plus-mult or minus- mult RTL instruction. Before this patch, we have three instructions, e.g.:   fcvt.s.h   fa5,fa5   vfmv

Re: [PATCH v2] RISC-V: Vector-scalar widening multiply-(subtract-)accumulate [PR119100]

2025-07-14 Thread Jeff Law
On 7/14/25 2:52 AM, Robin Dapp wrote: This pattern enables the combine pass (or late-combine, depending on the case) to merge a float_extend'ed vec_duplicate into a plus-mult or minus- mult RTL instruction. Before this patch, we have three instructions, e.g.:   fcvt.s.h   fa5,fa5   vfmv

Re: [PATCH v3] RISC-V: Mips P8700 Conditional Move Support.

2025-07-14 Thread Jeff Law
On 7/14/25 5:58 AM, Umesh Kalappa wrote: Hi Jeff and Marco, Please pass your comments on the below changes and do needful. The changes fail pre-commit tsting: https://patchwork.sourceware.org/project/gcc/patch/20250702071624.753431-1-ukalappa.m...@gmail.com/

Re: [PATCH] libgcc: PR target/116363 Fix SFtype to UDWtype conversion

2025-07-10 Thread Jeff Law
On 7/10/25 8:37 AM, Jan Dubiec wrote: On 10.07.2025 15:42, Jeff Law wrote: [...] Anyway, this has been repeatedly bootstrapped & regression tested on aarch64, ppc64le and other targets.  It's also been many dozens of regression testing cycles on the various embedded targets. Thi

Re: [PATCH] gcov: Split atomic bitwise-or for some targets

2025-07-10 Thread Jeff Law
On 7/9/25 11:53 PM, Sebastian Huber wrote: There are targets, which only offer 32-bit atomic operations (for example 32-bit RISC-V). For these targets, split the 64-bit atomic bitwise-or operation into two parts. For this test case int a(int i); int b(int i); int f(int i) { if (i) {

Re: [PATCH] libgcc: PR target/116363 Fix SFtype to UDWtype conversion

2025-07-10 Thread Jeff Law
On 2/22/25 8:10 AM, Jan Dubiec wrote: This patch fixes SFtype to UDWtype (aka float to unsigned long long) conversion on targets without DFmode like e.g. H8/300H. It solely relies on SFtype->UWtype and UWtype->UDWtype conversions/casts. The existing code in line 2218 (counter = a) assigns/cast

Re: [PATCH v1] RISCV: Remove the v extension requirement for sat scalar run test

2025-07-09 Thread Jeff Law
On 7/9/25 7:19 PM, Li, Pan2 wrote: * gcc.target/riscv/sat/sat_u_trunc-run-6-u8.c: Ditto. Spot checked. Note this uses "RISC-V" so it's not going to be picked up in the patchwork meeting. Oops, should be a typo here. It does seem to be causing some testing problems: It seems the

Re: [PATCH v1 0/2] Allow targets to avoid materializing split parameters via stack extension [PR/82106]

2025-07-09 Thread Jeff Law
On 7/3/25 3:50 PM, Palmer Dabbelt wrote: This is really Jim's code, but it's been sitting around in Bugzilla for a while so I've picked it up. All I really did here is add a target hook and mangle some comments, but I think I understand enough about what's going on to try and get things movin

Re: [PATCH] tail-call: Allow tail recusion for classes with RVO (TREE_ADDRESSABLE set) [PR120871]

2025-07-09 Thread Jeff Law
On 7/1/25 10:13 PM, Andrew Pinski wrote: With struct returns, we normally get a decl on the LHS of the call expression that will be tail called and we can match things up there easy. With TREE_ADDRESSABLE set on the type, things get more complex. Instead we get: ``` *_6(D) = get_s (1); [ret

Re: [PATCH v1] RISCV: Remove the v extension requirement for sat scalar run test

2025-07-09 Thread Jeff Law
On 7/8/25 11:07 PM, pan2...@intel.com wrote: From: Pan Li The sat scalar run test should not require the v extension, thus take rv32 || rv64 instead of riscv_v for the requirement. The below test suites are passed for this patch series. * The rv64gcv fully regression test. * The rv32gcv ful

Re: [PATCH] RISC-V: Enable zvfh for vector-scalar half-float run tests

2025-07-09 Thread Jeff Law
On 7/8/25 9:17 AM, Paul-Antoine Arras wrote: zvfh is not enabled at the testsuite level. It has to be enabled on a testcase by testcase basis. This was correctly done for compile tests but not for run tests. This patch fixes it. Also, to ensure correct results with half-precision floats, MAX_R

Re: [PATCH] RISC-V: Adjust testdata for unsigned vector SAT_SUB

2025-07-09 Thread Jeff Law
On 7/9/25 2:35 AM, Ciyan Pan wrote: From: panciyan This patch adjust test data for unsigned vector SAT_SUB to vec_sat_data.h Passed the rv64gcv regression test. Signed-off-by: Ciyan Pan gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/sat/vec_sat_arith.h: Add vec_sat_u_s

Re: [PATCH] ext-dce: Fix subreg_lsb is_constant assumption

2025-07-09 Thread Jeff Law
On 7/9/25 8:00 AM, Richard Sandiford wrote: Makes me wonder if I should resurrect my aarch64_be RFS. I changed how those systems worked in the system a few years back to make it work better with container based testing rather than direct chroots. I never converted aarch64_be to that setup

[to-be-committed][RISC-V] Detect new fusions for RISC-V

2025-07-09 Thread Jeff Law
This is primarily Daniel's work... He's chasing things in QEMU & LLVM right now so I'm doing a bit of clean-up and shepherding this patch forward. -- Instruction fusion is a reasonably common way to improve the performance of code on many architectures/designs. A few years ago we submitted

Re: [PATCH 2/2] tree-optimization/109893 - allow more backwards jump threading

2025-07-09 Thread Jeff Law
On 7/9/25 7:17 AM, Richard Biener wrote: ISTR the backwards threader simply cancels paths that had blocks in common with another jump thread (that happened to be materialized first). But maybe it's less strict than that. It cancels things in too many places and while it collects all opport

Basic fusions in RISC-V generic tuning model

2025-07-09 Thread Jeff Law
One thing I forgot to bring up in the patchwork meeting yesterday. Philip or Craig asked if we should add the most basic fusions to the generic tuning models for the two toolchains. I'm generally in favor of making that kind of change. I don't think anyone believes it'd be a major performanc

Re: [PATCH 2/2] tree-optimization/109893 - allow more backwards jump threading

2025-07-09 Thread Jeff Law
On 7/9/25 6:53 AM, Richard Biener wrote: On Wed, Jul 9, 2025 at 2:16 PM Jeff Law wrote: On 7/9/25 12:27 AM, Richard Biener wrote: The following changes the percentage that determines how many stmts are allowed for backwards jump threading from 50 to 54, enabling the missed jump

Re: [PATCH 2/2] tree-optimization/109893 - allow more backwards jump threading

2025-07-09 Thread Jeff Law
On 7/9/25 12:27 AM, Richard Biener wrote: The following changes the percentage that determines how many stmts are allowed for backwards jump threading from 50 to 54, enabling the missed jump threading observed in PR109893. Bootstrapped and tested on x86_64-unknown-linux-gnu. It seems that at

Re: [PATCH] [PR target/109286] H8/300: Fix warnings about initfini sections missing attributes

2025-07-09 Thread Jeff Law
On 7/8/25 10:26 AM, Jan Dubiec wrote: The patch changes order of inclusions, i.e. elfos.h is included before target specific h8300/h8300.h, in a way similar to a few other targets. Thanks to this change it is possible to override macros from elfos.h in h8300/h8300.h, in particular .init/.fini

Re: [PATCH] RISC-V: Vector-scalar widening multiply-(subtract-)accumulate [PR119100]

2025-07-09 Thread Jeff Law
On 7/9/25 3:11 AM, Robin Dapp wrote: Also, seems like the CI picked up the patch but didn't run it? Yea, it's happened with a couple of mine recently, including one yesterday. If it's not picked up when Paul-Antoine posts an update, then I'll throw it into my system for some degree of pr

Re: [PATCH] RISC-V: Adjust testdata for unsigned vector SAT_SUB

2025-07-09 Thread Jeff Law
On 7/9/25 4:51 AM, Kito Cheng wrote: OK if Pan say OK Note the CI failure is unrelated to Ciyan Pan's work. Looks like something went goofy in the libstdc++ space. I'm running it through my tester right now. jeff

[to-be-committed][RISC-V] Avoid propagating constant AVL for theadvector

2025-07-08 Thread Jeff Law
AVL propagation currently assumes that it can propagate a constant AVL into any vector insn and trips an assert if the insn fails to recognize after such a propagation. However, for xtheadvector that is not a correct assumption; xtheadvector does not allow the vector length to be a constant

Re: [PATCH v1] RISC-V: Disable uint128_t testcase of SAT_MUL when rv32

2025-07-08 Thread Jeff Law
On 7/7/25 9:48 PM, Li, Pan2 wrote: Is that correct? Don't you need to be testing that the platform has vector in addition to being rv64? It is riscv.exp test, so I think vector extension is not required here. Oh, I see. We're not actually turning on RVV anywhere. OK for the trunk. It lo

Re: [PATCH] riscv: allow zero in zacas subword atomic cas

2025-07-08 Thread Jeff Law
On 7/8/25 5:08 AM, Andreas Schwab wrote: gcc: PR target/120995 * config/riscv/sync.md (zacas_atomic_cas_value_strong): Allow op3 to be zero. gcc/testsuite: PR target/120995 * gcc.target/riscv/amo/zabha-zacas-atomic-cas.c: New test. Thanks. I didn't se

Re: [PATCH] RISC-V: Ignore non-types in builtin function hash.

2025-07-08 Thread Jeff Law
On 7/8/25 6:21 AM, Robin Dapp wrote: Hi, if a user passes a string that doesn't represent a variable we still try to compute a hash for its type.  Its tree does not represent a type but just an exceptional, though.  This patch just ignores it, leaving the error to the checking code later. Re

Re: [PATCH] RISC-V: Do not use vsetivli for THeadVector.

2025-07-08 Thread Jeff Law
On 7/8/25 6:21 AM, Robin Dapp wrote: Hi, in emit_vlmax_insn_lra we use a vsetivli for an immediate AVL. XTHeadVector does not support this, so guard appropriately. Regtested on rv64gcv_zvl512b. Regards Robin PR target/120461 gcc/ChangeLog: * config/riscv/riscv-v.cc (emit_vlmax_

Re: [PATCH v1] RISC-V: Disable uint128_t testcase of SAT_MUL when rv32

2025-07-07 Thread Jeff Law
On 7/7/25 9:24 PM, pan2...@intel.com wrote: /**/ /* Saturation Add (unsigned and signed) */ diff --git a/gcc/testsuite/gcc.target/riscv/sat/sat_u_mul-run-1-u16-from-u128.c

[committed] Minor fix to gcc.dg/torture/pr120654.c

2025-07-07 Thread Jeff Law
ommit 477abe67d34f7f8d1b0b12408e08769995b6ca9e Author: Jeff Law Date: Mon Jul 7 20:48:17 2025 -0600 [committed] Minor fix to gcc.dg/torture/pr120654.c I don't recall which port complained, but pr120654.c was failing on one or more of the embedded targets due to the use of malloc/free. This change j

[committed][RISC-V] Fix testsuite fallout from check-function-bodies change

2025-07-07 Thread Jeff Law
k-function-bodies atomic_add_fetch_int_seq_cst Pushed to the trunk, jeff commit 7b1e8e0e85ec6f9d80ceb0d38355b2fcd4785f67 Author: Jeff Law Date: Mon Jul 7 20:42:04 2025 -0600 [committed][RISC-V] Fix testsuite fallout from check-function-bodies change Minor fallout from HJ's r

Re: [PATCH v3 3/4] RISC-V: Implement unsigned scalar SAT_MUL from uint128_t

2025-07-06 Thread Jeff Law
On 7/4/25 10:54 PM, Li, Pan2 wrote: What you do want to watch out for is constants Here I want the max value of unsigned scalar based on mode, it could be UINT8_MAX, UINT16_MAX, UINT32_MAX and UINT64_MAX. Understood, but within the compiler HOST_WIDE_INT is how we tend to want to work on

Re: [PATCH 2/2] RISC-V: prefetch: fix LRA ICE [PR118241]

2025-07-04 Thread Jeff Law
On 7/4/25 1:43 PM, Vineet Gupta wrote: Hmm. I'm a little surprised that's needed. But there's new rules in the era of LRA and define_constraint. Yeah I was wondering why the fallback reg alternative is not already built-in. Is that meant to catch bugs in the backends ? I doubt it's meant

Re: [PATCH v3 3/4] RISC-V: Implement unsigned scalar SAT_MUL from uint128_t

2025-07-04 Thread Jeff Law
On 7/4/25 1:18 PM, Robin Dapp wrote: This generally looks OK to me (including the tests). +  HOST_WIDE_INT max = ((uint64_t)1 << bitsize) - 1; Wouldn't a uint64_t type for max be clearer?  I guess the worst that can happen is compiling on a 32-bit host for a 64-bit target and get bitsize

Re: [PATCH] ext-dce: Fix subreg_lsb is_constant assumption

2025-07-04 Thread Jeff Law
On 7/4/25 10:21 AM, Richard Sandiford wrote: ext-dce had: if (SUBREG_P (dst) && SUBREG_BYTE (dst).is_constant ()) { bit = subreg_lsb (dst).to_constant (); if (bit >= HOST_BITS_PER_WIDE_INT) bit = HOST_BITS_PER_WIDE_INT - 1;

Re: [PATCH 2/2] RISC-V: prefetch: fix LRA ICE [PR118241]

2025-07-03 Thread Jeff Law
On 7/3/25 5:19 PM, Vineet Gupta wrote: Provide a fallback alternaive register contraint for LRA in the light of the tightened "Q" constraint. Cures the following ICE ... | gcc/testsuite/gcc.target/riscv/pr118241-b.cc:31:19: error: unable to generate reloads for: | 31 | void m() { a.l(); }

  1   2   3   4   5   6   7   8   9   10   >