Turns out I was missing a few bits and pieces. Here is the updated patch and 
changelog.

Alejandro


2019-05-29  Alejandro Martinez  <alejandro.martinezvice...@arm.com>

        * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
        * config/aarch64/aarch64-sve2.md: New file.
        (<u>avg<mode>3_floor): New pattern.
        (<u>avg<mode>3_ceil): Likewise.
        (*<sur>h<addsub><mode>): Likewise.
        * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
        * config/aarch64/aarch64.md: Include aarch64-sve2.md.


2019-05-29  Alejandro Martinez  <alejandro.martinezvice...@arm.com>

gcc/testsuite/
        * gcc.target/aarch64/sve2/aarch64-sve2.exp: New file, regression driver
        for AArch64 SVE2.
        * gcc.target/aarch64/sve2/average_1.c: New test.
        * lib/target-supports.exp (check_effective_target_aarch64_sve2): New
        helper.
        (check_effective_target_aarch64_sve1_only): Likewise.
        (check_effective_target_aarch64_sve2_hw): Likewise.
        (check_effective_target_vect_avg_qi): Check for SVE1 only.

> -----Original Message-----
> From: Richard Sandiford <richard.sandif...@arm.com>
> Sent: 29 May 2019 10:54
> To: Alejandro Martinez Vicente <alejandro.martinezvice...@arm.com>
> Cc: GCC Patches <gcc-patches@gcc.gnu.org>; nd <n...@arm.com>
> Subject: Re: Implement vector average patterns for SVE2
> 
> Alejandro Martinez Vicente <alejandro.martinezvice...@arm.com> writes:
> > Hi,
> >
> > This patch implements the [u]avgM3_floor and [u]avgM3_ceil optabs for
> SVE2.
> >
> > Alejandro
> >
> > gcc/ChangeLog:
> >
> > 2019-05-28  Alejandro Martinez  <alejandro.martinezvice...@arm.com>
> >
> >     * config/aarch64/aarch64-sve2.md: New file.
> >     (<u>avg<mode>3_floor): New pattern.
> >     (<u>avg<mode>3_ceil): Likewise.
> >     (*<sur>h<addsub><mode>): Likewise.
> >     * config/aarch64/aarch64.md: Include aarch64-sve2.md.
> >
> >
> > 2019-05-28  Alejandro Martinez  <alejandro.martinezvice...@arm.com>
> >
> > gcc/testsuite/
> >     * gcc.target/aarch64/sve2/average_1.c: New test.
> >     * lib/target-supports.exp
> (check_effective_target_aarch64_sve1_only):
> >     New helper.
> >     (check_effective_target_vect_avg_qi): Check for SVE1 only.
> 
> OK, thanks, but...
> 
> > diff --git gcc/testsuite/lib/target-supports.exp
> > gcc/testsuite/lib/target-supports.exp
> > index f69106d..41431e6 100644
> > --- gcc/testsuite/lib/target-supports.exp
> > +++ gcc/testsuite/lib/target-supports.exp
> > @@ -3308,6 +3308,12 @@ proc check_effective_target_aarch64_sve2 { } {
> >      }]
> >  }
> >
> > +# Return 1 if this is an AArch64 target only supporting SVE (not SVE2).
> > +proc check_effective_target_aarch64_sve1_only { } {
> > +    return [expr { [check_effective_target_aarch64_sve]
> > +              && ![check_effective_target_aarch64_sve2] }] }
> 
> ...it needs check_effective_target_aarch64_sve2 to go in first.
> 
> Richard

Attachment: vavg_sve2_v2.patch
Description: vavg_sve2_v2.patch

Reply via email to