On 30 Oct 09:32, Uros Bizjak wrote: > On Thu, Oct 30, 2014 at 8:50 AM, Jan Beulich <jbeul...@suse.com> wrote: > > gcc/testsuite: > > 2014-10-30 Jan Beulich <jbeul...@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) > > > > > >