On Wed, Mar 15, 2017 at 09:50:18AM +0000, Sekhar, Ashwin wrote: > Hi GCC Team, Aarch64 Maintainers, > > > The rules in Vector Function Application Binary Interface Specification for > OpenMP > (https://sourceware.org/glibc/wiki/libmvec?action=AttachFile&do=view&target=VectorABI.txt) > is used in x86 for generating the simd clones of a function. > > Is there a similar one defined for Aarch64? > > If not, would like to start a discussion on the same for Aarch64. To kick > start the same, a draft proposal for Aarch64 (on the same lines as x86 ABI) > is included below. The only change from x86 ABI is in the function name > mangling. Here the letter 'b' is used for indicating the ASIMD isa.
Hi Ashwin, Thanks for the question. ARM has defined a vector function ABI, based on the Vector Function ABI Specification you linked below, which is designed to be suitable for both the Advanced SIMD and Scalable Vector Extensions. There has not yet been a release of this document which I can point you at, nor can I give you an estimate of when the document will be published. However, Francesco Petrogalli has recently made a proposal to the LLVM mailing list ( https://reviews.llvm.org/D30739 ) which I would note conflicts with your proposal in one way. You choose 'b' for name mangling for a vector function using Advanced SIMD, while Francesco uses 'n', which is the agreed character in the Vector Function ABI Specification we have been working on. I'd encourage you to wait for formal publication of the ARM Vector Function ABI to prevent any unexpected divergence between implementations. Thanks, James