On Sat, Jan 06, 2018 at 07:13:22PM +0000, Richard Sandiford wrote:
> James Greenhalgh <[email protected]> writes:
> > On Fri, Nov 03, 2017 at 05:50:54PM +0000, Richard Sandiford wrote:
> >> This patch adds gcc.target/aarch64 tests for SVE, and forces some
> >> existing Advanced SIMD tests to use -march=armv8-a.
> >
> > I'm going to assume that these new testcases are broadly sensible, and not
> > spend any significant time looking at them.
> >
> > I'm not completely happy forcing the architecture to Armv8-a - it would be
> > useful for our testing coverage if users which have configured with other
> > architecture variants had this test execute in those environments. That
> > way we'd check we still do the right thing once we have an implicit
> > -march=armv8.2-a .
> >
> > However, as we don't have a good way to make that happen (other than maybe
> > only forcing the arch if we are in a configuration wired for SVE?) I'm
> > happy with this patch as a compromise for now.
>
> Would something like LLVM's -mattr be useful? Then we could have
> -mattr=+nosve without having to change the base architecture.
>
> I suppose we'd need to be careful about how it interacts with -march
> though, so it probably isn't GCC 8 material. I'll try only forcing
> the arch when we're compiling for SVE, like you say.
(Sorry if you took a duplicate of this - I mistakenly sent with a disclaimer)
We also could do this with Target pragmas:
#pragma GCC target ("+nosve")
Should work here I think.
> Not strictly related, but do you think it's OK to require binutils 2.28+
> when testing GCC (rather than simply building it)? When trying with an
> older OS the other day, I realised that the SVE dg-do assemble tests
> would fail for 2.27 and earlier. We'd need something like:
>
> /* { dg-do assemble { aarch64_sve_asm } } */
>
> if we wanted to support older binutils.
Personally I think this is OK. We have the same problem with other
new instructions we add and want assemble tests for.
Thanks,
James