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
vavg_sve2_v2.patch
Description: vavg_sve2_v2.patch