On Sat, Jan 06, 2018 at 07:13:22PM +0000, Richard Sandiford wrote: > James Greenhalgh <james.greenha...@arm.com> 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