[arm64] Negative immediates and lack of default Neon support

Torbjörn Granlund tg at gmplib.org
Wed Sep 24 08:42:38 UTC 2014


Marc Glisse <marc.glisse at inria.fr> writes:

  On Wed, 24 Sep 2014, Torbjörn Granlund wrote:
  
  > There seem to be another problem with using clang for arm64, see the
  > build failures at <https://gmplib.org/devel/tm-date.html>.
  
  A piece of information I usually have a hard time finding is the
  compiler version, I don't think it gets printed at any time during the
  build. It might be hard, with all compilers having different syntax
  for that...

yourmachine$ ssh shell.gmplib.org
shell$ ssh leg
leg$ clang -v
Debian clang version 3.4.2-8 (tags/RELEASE_34/dot2-final) (based on LLVM 3.4.2)

> Apparently, clang disables Neon instruction assembly by default.  I
  > found that passing -mfpu=neon to the compiler helps.
  
  Ah, I didn't have that problem on debian. The defaults are apparently
  not the same :-(
  
My install is based on Debian.  (Install 14 of
https://gmplib.org/~tege/qemu.html)

  > This command line option is not recognised by gcc.  We therefore need to
  > split out clang handling in configure.ac.
  >
  > A related problem is whether Neon is actually optional for armv8.  My
  > understanding is that it is not optional, but I am not sure about that.
  > If it is optional, then we need to move Neon assembly code into a
  > arm64/neon subdirectory, and adjust configure.ac accordingly.
  
  I though neon was compulsory on ARMv8-A but some googling shows
  conversations where the words 'disable' and 'flexibility' appear a
  lot.
  Still, not enabling FP and neon by default seems like a questionable
  choice to me.

We at least need to pass -mfpu=neon to clang since it is sometimes
required and else presumably harmless.  We can defer any neon code
splitting until we know that's needed.

-- 
Torbjörn
Please encrypt, key id 0xC8601622


More information about the gmp-bugs mailing list