Discussion:
mfpu=neon and -march=native on aarch64-linux-gnu toolchain
Virendra Kumar Pathak
2015-06-10 05:26:07 UTC
Permalink
Hi Linaro Toolchain Group,

I have questions regarding -mfpu=neon and -march=native w.r.t aarch64
linaro native toolchain (aarch64-linux-gnu)
I found gcc is not accepting these flags.

On juno Board:

gcc -mfpu=neon hello.c -o hello
gcc: error: unrecognized command line option '-mfpu=neon'

gcc -march=native hello.c -o hello
hello.c:1:0: error: unknown value 'native' for –march

Am I missing something ? Please help.


Below is the machine details

uname -a
Linux juno 3.10.55.0-1-linaro-lt-vexpress64 #1ubuntu1~ci+141022094025 SMP
Wed Oct 22 09:41:06 UTC 2014 aarch64 aarch64 aarch64 GNU/Linux

gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/apps/gcc-native/gcc-linaro-5.1-2015.06.06.native-i686-mingw32_aarch64-linux-gnu/bin/../libexec/gcc/aarch64-linux-gnu/5.1.1/lto-wrapper
Target: aarch64-linux-gnu
Configured with:
'/home/user_name/vpathak/build_abe/snapshots/gcc.git~linaro-4.9-branch/configure'
SHELL=/bin/sh --with-bugurl=https://bugs.linaro.org
--with-mpc=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu
--with-mpfr=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu
--with-gmp=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu
--with-gnu-as --with-gnu-ld --disable-libstdcxx-pch --disable-libmudflap
--with-cloog=no --with-ppl=no --with-isl=no --disable-nls
--enable-multiarch --disable-multilib --enable-c99 --with-arch=armv8-a
--disable-shared --enable-static
--with-build-sysroot=/home/user_name/vpathak/build_abe/sysroots/aarch64-linux-gnu
--enable-lto --enable-linker-build-id --enable-long-long --enable-shared
--with-sysroot=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu/aarch64-linux-gnu/libc
--enable-languages=c,c++,fortran,lto --enable-fix-cortex-a53-835769
--enable-checking=release --disable-bootstrap --with-bugurl=
https://bugs.linaro.org --build=x86_64-unknown-linux-gnu
--host=aarch64-linux-gnu --target=aarch64-linux-gnu
--prefix=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu
Thread model: posix
gcc version 5.1.1 (GCC)

Thanks.
--
with regards,
Virendra Kumar Pathak
Pinski, Andrew
2015-06-10 05:35:21 UTC
Permalink
-march=native was not included in GCC 5.1 that Linaro provided. I don't know if Linaro has plans to backport the support it but it is already there for GCC 6.

You don't need -mfpu=neon for AARCH64 at all. AARCH64 defaults to having simd turned on.


Thanks,

Andrew Pinski

________________________________
From: linaro-toolchain <linaro-toolchain-***@lists.linaro.org> on behalf of Virendra Kumar Pathak <***@gmail.com>
Sent: Tuesday, June 9, 2015 10:26 PM
To: Linaro Toolchain Mailman List
Subject: mfpu=neon and -march=native on aarch64-linux-gnu toolchain

Hi Linaro Toolchain Group,

I have questions regarding -mfpu=neon and -march=native w.r.t aarch64 linaro native toolchain (aarch64-linux-gnu)
I found gcc is not accepting these flags.

On juno Board:

gcc -mfpu=neon hello.c -o hello
gcc: error: unrecognized command line option '-mfpu=neon'

gcc -march=native hello.c -o hello
hello.c:1:0: error: unknown value 'native' for -march

Am I missing something ? Please help.


Below is the machine details

uname -a
Linux juno 3.10.55.0-1-linaro-lt-vexpress64 #1ubuntu1~ci+141022094025 SMP Wed Oct 22 09:41:06 UTC 2014 aarch64 aarch64 aarch64 GNU/Linux

gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/apps/gcc-native/gcc-linaro-5.1-2015.06.06.native-i686-mingw32_aarch64-linux-gnu/bin/../libexec/gcc/aarch64-linux-gnu/5.1.1/lto-wrapper
Target: aarch64-linux-gnu
Configured with: '/home/user_name/vpathak/build_abe/snapshots/gcc.git~linaro-4.9-branch/configure' SHELL=/bin/sh --with-bugurl=https://bugs.linaro.org --with-mpc=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu --with-mpfr=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu --with-gmp=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu --with-gnu-as --with-gnu-ld --disable-libstdcxx-pch --disable-libmudflap --with-cloog=no --with-ppl=no --with-isl=no --disable-nls --enable-multiarch --disable-multilib --enable-c99 --with-arch=armv8-a --disable-shared --enable-static --with-build-sysroot=/home/user_name/vpathak/build_abe/sysroots/aarch64-linux-gnu --enable-lto --enable-linker-build-id --enable-long-long --enable-shared --with-sysroot=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu/aarch64-linux-gnu/libc --enable-languages=c,c++,fortran,lto --enable-fix-cortex-a53-835769 --enable-checking=release --disable-bootstrap --with-bugurl=https://bugs.linaro.org --build=x86_64-unknown-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu --prefix=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu
Thread model: posix
gcc version 5.1.1 (GCC)

Thanks.
--
with regards,
Virendra Kumar Pathak
Virendra Kumar Pathak
2015-06-10 07:06:30 UTC
Permalink
Hi Andrew,

Thanks for the information.
So does it mean gcc will not recognize the 'mfpu' option itself for aarch64
?

Linaro ToolChain FAQ says along with '-mfpu', we also need to specify
-mfloat-abi=softfp|hard otherwise VFP/Neon/Crypto instructions will not be
generated. Also Linaro connect presentation (
http://www.slideshare.net/linaroorg/lcu14-307-advanced-toolchain-usage-parts-12)
suggest to pass '-funsafe-math-optimizations' since NEON does not support
full IEEE 754.

Are such flags restrictions are still applicable ?

Please also tell how can we disable NEON/SIMD instructions in gcc for
aarch64.

Thanks.


On 10 June 2015 at 11:05, Pinski, Andrew <***@caviumnetworks.com>
wrote:

> -march=native was not included in GCC 5.1 that Linaro provided. I don't
> know if Linaro has plans to backport the support it but it is already there
> for GCC 6.
>
> You don't need -mfpu=neon for AARCH64 at all. AARCH64 defaults to having
> simd turned on.
>
>
> Thanks,
>
> Andrew Pinski
> ------------------------------
> *From:* linaro-toolchain <linaro-toolchain-***@lists.linaro.org> on
> behalf of Virendra Kumar Pathak <***@gmail.com>
> *Sent:* Tuesday, June 9, 2015 10:26 PM
> *To:* Linaro Toolchain Mailman List
> *Subject:* mfpu=neon and -march=native on aarch64-linux-gnu toolchain
>
> Hi Linaro Toolchain Group,
>
> I have questions regarding -mfpu=neon and -march=native w.r.t aarch64
> linaro native toolchain (aarch64-linux-gnu)
> I found gcc is not accepting these flags.
>
> On juno Board:
>
> gcc -mfpu=neon hello.c -o hello
> gcc: error: unrecognized command line option '-mfpu=neon'
>
> gcc -march=native hello.c -o hello
> hello.c:1:0: error: unknown value 'native' for –march
>
> Am I missing something ? Please help.
>
>
> Below is the machine details
>
> uname -a
> Linux juno 3.10.55.0-1-linaro-lt-vexpress64 #1ubuntu1~ci+141022094025 SMP
> Wed Oct 22 09:41:06 UTC 2014 aarch64 aarch64 aarch64 GNU/Linux
>
> gcc -v
> Using built-in specs.
> COLLECT_GCC=gcc
>
> COLLECT_LTO_WRAPPER=/usr/local/apps/gcc-native/gcc-linaro-5.1-2015.06.06.native-i686-mingw32_aarch64-linux-gnu/bin/../libexec/gcc/aarch64-linux-gnu/5.1.1/lto-wrapper
> Target: aarch64-linux-gnu
> Configured with:
> '/home/user_name/vpathak/build_abe/snapshots/gcc.git~linaro-4.9-branch/configure'
> SHELL=/bin/sh --with-bugurl=https://bugs.linaro.org
> --with-mpc=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu
> --with-mpfr=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu
> --with-gmp=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu
> --with-gnu-as --with-gnu-ld --disable-libstdcxx-pch --disable-libmudflap
> --with-cloog=no --with-ppl=no --with-isl=no --disable-nls
> --enable-multiarch --disable-multilib --enable-c99 --with-arch=armv8-a
> --disable-shared --enable-static
> --with-build-sysroot=/home/user_name/vpathak/build_abe/sysroots/aarch64-linux-gnu
> --enable-lto --enable-linker-build-id --enable-long-long --enable-shared
> --with-sysroot=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu/aarch64-linux-gnu/libc
> --enable-languages=c,c++,fortran,lto --enable-fix-cortex-a53-835769
> --enable-checking=release --disable-bootstrap --with-bugurl=
> https://bugs.linaro.org --build=x86_64-unknown-linux-gnu
> --host=aarch64-linux-gnu --target=aarch64-linux-gnu
> --prefix=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu
> Thread model: posix
> gcc version 5.1.1 (GCC)
>
> Thanks.
> --
> with regards,
> Virendra Kumar Pathak
>



--
with regards,
Virendra Kumar Pathak
Pinski, Andrew
2015-06-10 07:14:23 UTC
Permalink
-mgeneral-regs-only is how you turn off SIMD usage. But Note it also turns off floating point too. I don't know why you want to turn off the SIMD usage because all ARMv8-a platforms have it and it is not optional for -a processors.


That slide is about AARCH32 (aka A32 aka armv7) usage.


Thanks,

Andrew Pinski


________________________________
From: Virendra Kumar Pathak <***@gmail.com>
Sent: Wednesday, June 10, 2015 12:06 AM
To: Pinski, Andrew
Cc: Linaro Toolchain Mailman List
Subject: Re: mfpu=neon and -march=native on aarch64-linux-gnu toolchain

Hi Andrew,

Thanks for the information.
So does it mean gcc will not recognize the 'mfpu' option itself for aarch64 ?

Linaro ToolChain FAQ says along with '-mfpu', we also need to specify -mfloat-abi=softfp|hard otherwise VFP/Neon/Crypto instructions will not be generated. Also Linaro connect presentation (http://www.slideshare.net/linaroorg/lcu14-307-advanced-toolchain-usage-parts-12) suggest to pass '-funsafe-math-optimizations' since NEON does not support full IEEE 754.

Are such flags restrictions are still applicable ?

Please also tell how can we disable NEON/SIMD instructions in gcc for aarch64.

Thanks.


On 10 June 2015 at 11:05, Pinski, Andrew <***@caviumnetworks.com<mailto:***@caviumnetworks.com>> wrote:

-march=native was not included in GCC 5.1 that Linaro provided. I don't know if Linaro has plans to backport the support it but it is already there for GCC 6.

You don't need -mfpu=neon for AARCH64 at all. AARCH64 defaults to having simd turned on.


Thanks,

Andrew Pinski

________________________________
From: linaro-toolchain <linaro-toolchain-***@lists.linaro.org<mailto:linaro-toolchain-***@lists.linaro.org>> on behalf of Virendra Kumar Pathak <***@gmail.com<mailto:***@gmail.com>>
Sent: Tuesday, June 9, 2015 10:26 PM
To: Linaro Toolchain Mailman List
Subject: mfpu=neon and -march=native on aarch64-linux-gnu toolchain

Hi Linaro Toolchain Group,

I have questions regarding -mfpu=neon and -march=native w.r.t aarch64 linaro native toolchain (aarch64-linux-gnu)
I found gcc is not accepting these flags.

On juno Board:

gcc -mfpu=neon hello.c -o hello
gcc: error: unrecognized command line option '-mfpu=neon'

gcc -march=native hello.c -o hello
hello.c:1:0: error: unknown value 'native' for –march

Am I missing something ? Please help.


Below is the machine details

uname -a
Linux juno 3.10.55.0-1-linaro-lt-vexpress64 #1ubuntu1~ci+141022094025 SMP Wed Oct 22 09:41:06 UTC 2014 aarch64 aarch64 aarch64 GNU/Linux

gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/apps/gcc-native/gcc-linaro-5.1-2015.06.06.native-i686-mingw32_aarch64-linux-gnu/bin/../libexec/gcc/aarch64-linux-gnu/5.1.1/lto-wrapper
Target: aarch64-linux-gnu
Configured with: '/home/user_name/vpathak/build_abe/snapshots/gcc.git~linaro-4.9-branch/configure' SHELL=/bin/sh --with-bugurl=https://bugs.linaro.org --with-mpc=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu --with-mpfr=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu --with-gmp=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu --with-gnu-as --with-gnu-ld --disable-libstdcxx-pch --disable-libmudflap --with-cloog=no --with-ppl=no --with-isl=no --disable-nls --enable-multiarch --disable-multilib --enable-c99 --with-arch=armv8-a --disable-shared --enable-static --with-build-sysroot=/home/user_name/vpathak/build_abe/sysroots/aarch64-linux-gnu --enable-lto --enable-linker-build-id --enable-long-long --enable-shared --with-sysroot=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu/aarch64-linux-gnu/libc --enable-languages=c,c++,fortran,lto --enable-fix-cortex-a53-835769 --enable-checking=release --disable-bootstrap --with-bugurl=https://bugs.linaro.org --build=x86_64-unknown-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu --prefix=/home/user_name/vpathak/build_abe/builds/destdir/aarch64-linux-gnu
Thread model: posix
gcc version 5.1.1 (GCC)

Thanks.
--
with regards,
Virendra Kumar Pathak



--
with regards,
Virendra Kumar Pathak
Loading...