Haider Zeeshan (CC/ESM1) via llvm-dev
2017-Feb-03 08:48 UTC
[llvm-dev] Clang 5.0 support for armv8 64 bit with neon and auto vectorization
Hi there, I am Software product developer at Robert Bosch, Germany. We are using armv8 64bit targets for our development. We have the need to do the cross compiling for our target on windows. I have compiled clang 5.0 from the vcs git. I have tried compiling the code with following options set: clang.exe -target armv8 -fslp-vectorize-aggressive -mfpu=neon -mfloat-abi=hard -c test.cpp As you can see in the options, we require neon feature as well as auto vectorizations on armv8 (64 bit). Can you tell me that is it true that clang supports neon and auto vectorizations with 64bit arm v8 architecture? This setting says that neon is not in support, Can you explain why? As of my understanding, arm v8 is a 64 bit architecture! clang.exe -target arm64 -fslp-vectorize-aggressive -mfpu=neon -mfloat-abi=hard -c test.cpp Mit freundlichen Grüßen / Best regards Zeeshan Haider Chassis Systems Control, Engineering Software Coordination, Software Mainstream Management, Methods Group 1 (CC/ESM1) Robert Bosch GmbH | Postfach 16 61 | 71226 Leonberg | GERMANY | www.bosch.com<http://www.bosch.com/> Tel. +49(711)811-47379 | Fax +49(711)811-0 | Zeeshan.Haider at de.bosch.com<mailto:Zeeshan.Haider at de.bosch.com> Sitz: Stuttgart, Registergericht: Amtsgericht Stuttgart, HRB 14000; Aufsichtsratsvorsitzender: Franz Fehrenbach; Geschäftsführung: Dr. Volkmar Denner, Dr. Stefan Asenkerschbaumer, Dr. Rolf Bulander, Dr. Stefan Hartung, Dr. Markus Heyn, Dr. Dirk Hoheisel, Christoph Kübel, Uwe Raschke, Dr. Werner Struth, Peter Tyroller -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170203/d1e1a658/attachment.html>
Peter Smith via llvm-dev
2017-Feb-03 10:02 UTC
[llvm-dev] Clang 5.0 support for armv8 64 bit with neon and auto vectorization
Hello Haider, I'll have to make this quick as I need to leave the office to get on a train. I hope my colleagues will be able to correct anything I've got wrong. I suggest taking a look at the set of command line options supported by the aarch64 target. The armv8 target can mean m-profile without ARM, r-profile or a-profile, floating point or neon is not uniform across these targets. For -target=aarch64 simd and hard precision floating point are the default and assumed option, there is also no ABI support for soft-floating point so the command line options are redundant. I suggest just removing -mfpu and -mfloat-abi and you'll get the results you want. The -march and -mcpu options can give you some extra control, for example --target=aarch64 -march=armv8-a+simd+fp. Peter On 3 February 2017 at 08:48, Haider Zeeshan (CC/ESM1) via llvm-dev <llvm-dev at lists.llvm.org> wrote:> Hi there, > > > > I am Software product developer at Robert Bosch, Germany. > > > > We are using armv8 64bit targets for our development. We have the need to do > the cross compiling for our target on windows. I have compiled clang 5.0 > from the vcs git. I have tried compiling the code with following options > set: > > > > clang.exe -target armv8 -fslp-vectorize-aggressive -mfpu=neon > -mfloat-abi=hard -c test.cpp > > > > As you can see in the options, we require neon feature as well as auto > vectorizations on armv8 (64 bit). Can you tell me that is it true that clang > supports neon and auto vectorizations with 64bit arm v8 architecture? > > > > This setting says that neon is not in support, Can you explain why? As of my > understanding, arm v8 is a 64 bit architecture! > > clang.exe -target arm64 -fslp-vectorize-aggressive -mfpu=neon > -mfloat-abi=hard -c test.cpp > > > > > > Mit freundlichen Grüßen / Best regards > > Zeeshan Haider > > > > Chassis Systems Control, Engineering Software Coordination, Software > Mainstream Management, Methods Group 1 (CC/ESM1) > > Robert Bosch GmbH | Postfach 16 61 | 71226 Leonberg | GERMANY | > www.bosch.com > > Tel. +49(711)811-47379 | Fax +49(711)811-0 | Zeeshan.Haider at de.bosch.com > > > > Sitz: Stuttgart, Registergericht: Amtsgericht Stuttgart, HRB 14000; > > Aufsichtsratsvorsitzender: Franz Fehrenbach; Geschäftsführung: Dr. Volkmar > Denner, > > Dr. Stefan Asenkerschbaumer, Dr. Rolf Bulander, Dr. Stefan Hartung, Dr. > Markus Heyn, Dr. Dirk Hoheisel, > > Christoph Kübel, Uwe Raschke, Dr. Werner Struth, Peter Tyroller > > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >
Tim Northover via llvm-dev
2017-Feb-03 15:01 UTC
[llvm-dev] Clang 5.0 support for armv8 64 bit with neon and auto vectorization
On 3 February 2017 at 00:48, Haider Zeeshan (CC/ESM1) via llvm-dev <llvm-dev at lists.llvm.org> wrote:> clang.exe -target armv8 -fslp-vectorize-aggressive -mfpu=neon > -mfloat-abi=hard -c test.cppPeter's advice is good (-mfpu and -mfloat-abi aren't needed). But also note that "-target armv8" actually targets 32-bit ARM (v8 CPUs usually support both modes). You probably want to specify a full triple for the target, maybe "-target aarch64-linux-gnu", otherwise the OS part might default to Windows since that's where you're running. Clang doesnn't support Windows on AArch64. Cheers. Tim.
Haider Zeeshan (CC/ESM1) via llvm-dev
2017-Feb-03 15:13 UTC
[llvm-dev] Clang 5.0 support for armv8 64 bit with neon and auto vectorization
Thanks Peter and Tim. Being that said, can I be sure that for 64 bit arm architectures (e.g. arm cortex A57) the neon feature and auto-vectorization is supported as default by clang 5.0? Because for us these two features are deal breaking for compiler evaluation. Mit freundlichen Grüßen / Best regards Zeeshan Haider Chassis Systems Control, Engineering Software Coordination, Software Mainstream Management, Methods Group 1 (CC/ESM1) Robert Bosch GmbH | Postfach 16 61 | 71226 Leonberg | GERMANY | www.bosch.com Tel. +49(711)811-47379 | Fax +49(711)811-0 | Zeeshan.Haider at de.bosch.com Sitz: Stuttgart, Registergericht: Amtsgericht Stuttgart, HRB 14000; Aufsichtsratsvorsitzender: Franz Fehrenbach; Geschäftsführung: Dr. Volkmar Denner, Dr. Stefan Asenkerschbaumer, Dr. Rolf Bulander, Dr. Stefan Hartung, Dr. Markus Heyn, Dr. Dirk Hoheisel, Christoph Kübel, Uwe Raschke, Dr. Werner Struth, Peter Tyroller -----Original Message----- From: Tim Northover [mailto:t.p.northover at gmail.com] Sent: Freitag, 3. Februar 2017 16:02 To: Haider Zeeshan (CC/ESM1) <Zeeshan.Haider at de.bosch.com> Cc: llvm-dev at lists.llvm.org Subject: Re: [llvm-dev] Clang 5.0 support for armv8 64 bit with neon and auto vectorization On 3 February 2017 at 00:48, Haider Zeeshan (CC/ESM1) via llvm-dev <llvm-dev at lists.llvm.org> wrote:> clang.exe -target armv8 -fslp-vectorize-aggressive -mfpu=neon > -mfloat-abi=hard -c test.cppPeter's advice is good (-mfpu and -mfloat-abi aren't needed). But also note that "-target armv8" actually targets 32-bit ARM (v8 CPUs usually support both modes). You probably want to specify a full triple for the target, maybe "-target aarch64-linux-gnu", otherwise the OS part might default to Windows since that's where you're running. Clang doesnn't support Windows on AArch64. Cheers. Tim.