Re: [PATCH v2] aarch64: Canonicalize halving-add builtins [PR122715]
Alice Carlotti <[email protected]>
| Newsgroups | gmane.comp.gcc.patches |
|---|---|
| Message-ID | <[email protected]> |
On Sat, Aug 15, 2026 at 06:23:08PM -0700, Andrea Pinski wrote: > On Sat, Aug 15, 2026 at 3:25 PM Odysseas Georgoudis <[email protected]> wrote: > > > > Thanks for pointing me to Eikansh's earlier patch and the SME issue. > > > > Would delaying the canonicalization until after inlining be an > > acceptable way to handle it? This keeps the target builtins visible > > while AArch64 IPA records their PSTATE.SM requirements, after which > > they can be converted to IFN_AVG_FLOOR or IFN_AVG_CEIL > > > > The attached v2 retains both the signed and unsigned canonicalizations > > and implements that approach. I also added a focused SME regression > > test for the unsigned rounding-add path. > > > > Tested with an aarch64-linux-gnu cross compiler. The targeted PR > > tests, the new SME test, and the existing arm_neon_1.c, > > arm_neon_2.c, and arm_neon_3.c tests pass. > > I am ok with the addition of the after inlining check. Let's see if > the other aarch64 maintainers are ok with adding the after inlining > check too. > > Thanks, > Andrea I believe I have a fix for the inlining bug, which I intend to post later once I've gathered up a couple more test cases and written it up. Perhaps we can see if that's sufficient to exclude the proposed inlining check in this patch. Thanks, Alice > > > > > Thanks > > Odysseas > > > > ________________________________ > > From: Andrea Pinski <[email protected]> > > Sent: 15 August 2026 02:52 > > To: Odysseas Georgoudis <[email protected]> > > Cc: [email protected] <[email protected]> > > Subject: Re: [PATCH] aarch64: Canonicalize halving-add builtins [PR122715] > > > > On Fri, Aug 14, 2026 at 5:33 PM Odysseas Georgoudis <[email protected]> wrote: > > > > > > The first two patches for PR122715 have been committed. This patch > > > handles the remaining AArch64 case. > > > > > > Advanced SIMD halving-add intrinsics remain target builtins in GIMPLE, > > > preventing generic average simplifications from seeing them. Canonicalize > > > SHADD and UHADD to IFN_AVG_FLOOR, and SRHADD and URHADD to > > > IFN_AVG_CEIL. > > > > > > This allows equal operands to be folded by the existing match.pd rule > > > while retaining optab-based instruction selection for other operands. > > > > > > Tested with an aarch64-linux-gnu cross compiler. The targeted tests > > > pass. > > > > This does not fully work. > > In fact is is the same as Eikansh's patch (except adding the signed ones): > > https://inbox.sourceware.org/gcc-patches/[email protected]/ > > > > The reason why it does not work is mentioned here: > > https://inbox.sourceware.org/gcc-patches/CALvbMcAPZu5dupGfA=3GtS8avmzzPScYMy8SrRRQxTQhakhpKw@mail.gmail.com/ > > Basically gcc.target/aarch64/sme/arm_neon_1.c is no longer rejected > > when it should be. > > > > Eikansh was still looking into how to fix the issue mentioned but has > > not yet come up with a patch. He has been busy working on other > > things. > > If you want to look into how to resolve that issue that would be nice. > > > > Note the compile farm has a few aarch64 machines which you can use to > > do a bootstrap test. > > See https://gcc.gnu.org/wiki/CompileFarm on how to sign up (this is > > seperate from GCC but is used by many GCC developers and had been > > associated with GCC development for a long time now). > > > > Thanks, > > Andrea > > > > > > > > > > Thanks, > > > Odysseas > > >