D30739: [OpenMP] "declare simd" for AArch64 Advanced SIMD.
Tian, Xinmin via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 21 09:35:31 PDT 2017
>>>>The current infrastructure for vector names generation works only for function definition. Ideally we should implement it also for function definition provided by external libraries
Right, we need to fix that to support #pragma omp declare simd on function declaration as well to enable multiple module compilation via .h files for simd functions.
Thanks,
Xinmin
-----Original Message-----
From: Francesco Petrogalli via Phabricator [mailto:reviews at reviews.llvm.org]
Sent: Tuesday, March 21, 2017 6:13 AM
To: francesco.petrogalli at arm.com; a.bataev at hotmail.com; cbertol at us.ibm.com; acjacob at us.ibm.com; Hahnfeld at itc.rwth-aachen.de
Cc: Tian, Xinmin <xinmin.tian at intel.com>; florian.hahn at arm.com; roger.ferreribanez at arm.com; amara.emerson at arm.com; renato.golin at linaro.org; cfe-commits at lists.llvm.org
Subject: [PATCH] D30739: [OpenMP] "declare simd" for AArch64 Advanced SIMD.
fpetrogalli added a comment.
In https://reviews.llvm.org/D30739#706292, @Hahnfeld wrote:
> In principal looks good to me although I'm not really familiar with this part. Does that work for you if you have the `declare simd` in a header file and the implementation in another file? On x86_64 I currently get:
The current infrastructure for vector names generation works only for function definition. Ideally we should implement it also for function definition provided by external libraries.
> remark: loop not vectorized: call instruction cannot be vectorized
>
>
> But that seems to be a general problem inside LLVM's LoopVectorize pass...
AFAIK, none of the machinery required in LLVM to expose the mangled names in the vectorizer is present in trunk. There is a patch for x86 under review that does that: https://reviews.llvm.org/D22792
https://reviews.llvm.org/D30739
More information about the cfe-commits
mailing list