This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] x86: extend vect-args testcase to AVX flavors
- From: Kirill Yukhin <kirill dot yukhin at gmail dot com>
- To: Uros Bizjak <ubizjak at gmail dot com>
- Cc: Jan Beulich <JBeulich at suse dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, Richard Henderson <rth at redhat dot com>, Jan Hubicka <hubicka at ucw dot cz>
- Date: Fri, 31 Oct 2014 20:42:30 +0400
- Subject: Re: [PATCH] x86: extend vect-args testcase to AVX flavors
- Authentication-results: sourceware.org; auth=none
- References: <5451FBE302000078000435BD at mail dot emea dot novell dot com> <CAFULd4Ywo_StWKUD8Z7OvafWc0w_aLXTVp6sCHi7F6RgX9WtWg at mail dot gmail dot com>
On 30 Oct 09:32, Uros Bizjak wrote:
> On Thu, Oct 30, 2014 at 8:50 AM, Jan Beulich <JBeulich@suse.com> wrote:
> > gcc/testsuite:
> > 2014-10-30 Jan Beulich <jbeulich@suse.com>
> >
> > * gcc.target/i386/i386.exp: Extend option set to test
> > vect-args.c with to include -mavx, -mavx2, and -mavx512f.
> > * gcc.target/i386/vect-args.c: Add AVX* modes and tests.
>
> OK, but let's also wait for Kirill's opinion.
I like the change.
--
Thanks, K
>
> Thanks,
> Uros.
>
> > --- a/gcc/testsuite/gcc.target/i386/i386.exp
> > +++ b/gcc/testsuite/gcc.target/i386/i386.exp
> > @@ -318,9 +318,9 @@ clearcap-init
> >
> > global runtests
> > # Special case compilation of vect-args.c so we don't have to
> > -# replicate it 10 times.
> > +# replicate it 16 times.
> > if [runtest_file_p $runtests $srcdir/$subdir/vect-args.c] {
> > - foreach type { "" -mmmx -m3dnow -msse -msse2 } {
> > + foreach type { "" -mmmx -m3dnow -msse -msse2 -mavx -mavx2 -mavx512f } {
> > foreach level { "" -O } {
> > set flags "$type $level"
> > verbose -log "Testing vect-args, $flags" 1
> > --- a/gcc/testsuite/gcc.target/i386/vect-args.c
> > +++ b/gcc/testsuite/gcc.target/i386/vect-args.c
> > @@ -1,6 +1,22 @@
> > /* { dg-do compile } */
> > /* { dg-options "-w -Wno-psabi" } */
> >
> > +/* AVX512F and AVX512BW modes. */
> > +typedef unsigned char V64QImode __attribute__((vector_size(64)));
> > +typedef unsigned short V32HImode __attribute__((vector_size(64)));
> > +typedef unsigned int V16SImode __attribute__((vector_size(64)));
> > +typedef unsigned long long V8DImode __attribute__((vector_size(64)));
> > +typedef float V16SFmode __attribute__((vector_size(64)));
> > +typedef double V8DFmode __attribute__((vector_size(64)));
> > +
> > +/* AVX and AVX2 modes. */
> > +typedef unsigned char V32QImode __attribute__((vector_size(32)));
> > +typedef unsigned short V16HImode __attribute__((vector_size(32)));
> > +typedef unsigned int V8SImode __attribute__((vector_size(32)));
> > +typedef unsigned long long V4DImode __attribute__((vector_size(32)));
> > +typedef float V8SFmode __attribute__((vector_size(32)));
> > +typedef double V4DFmode __attribute__((vector_size(32)));
> > +
> > /* SSE1 and SSE2 modes. */
> > typedef unsigned char V16QImode __attribute__((vector_size(16)));
> > typedef unsigned short V8HImode __attribute__((vector_size(16)));
> > @@ -21,12 +37,27 @@ extern TYPE data_##TYPE; \
> > void r_##TYPE (TYPE x) { data_##TYPE = x; } \
> > void s_##TYPE (void) { r_##TYPE (data_##TYPE); }
> >
> > +TEST(V64QImode)
> > +TEST(V32HImode)
> > +TEST(V16SImode)
> > +TEST(V8DImode)
> > +TEST(V16SFmode)
> > +TEST(V8DFmode)
> > +
> > +TEST(V32QImode)
> > +TEST(V16HImode)
> > +TEST(V8SImode)
> > +TEST(V4DImode)
> > +TEST(V8SFmode)
> > +TEST(V4DFmode)
> > +
> > TEST(V16QImode)
> > TEST(V8HImode)
> > TEST(V4SImode)
> > TEST(V2DImode)
> > TEST(V4SFmode)
> > TEST(V2DFmode)
> > +
> > TEST(V8QImode)
> > TEST(V4HImode)
> > TEST(V2SImode)
> >
> >
> >