[llvm-dev] Invoke loop vectorizer
Daniel Berlin via llvm-dev
llvm-dev at lists.llvm.org
Fri Aug 12 11:11:10 PDT 2016
It's not possible to know that A and B don't alias in this example. It's
almost certainly not profitable to add a runtime check given the size of
the loop.
try
#define SIZE 8
void bar(int *restrict A, int* restrict B,int K) {
#pragma clang loop vectorize(enable) vectorize_width(2) unroll_count(8)
for (int i = 0; i < SIZE; ++i)
A[i] += B[i] + K;
}
(i don't remember if llvm also does runtime alias checks, but if it does,
you'd probably need to increase size to get it to vectorize)
On Fri, Aug 12, 2016 at 11:08 AM, Xiaochu Liu via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Hi Andrey,
>
> Thanks. I found even when loop vectorizer and SLP vectorizer are enabled,
> my simple test still not get optimized. I also tried clang pragma in my
> test to force vectorization. What do you think is the problem?
>
> Test:
>
> #define SIZE 8
>
> void bar(int *A, int* B,int K) {
>
> #pragma clang loop vectorize(enable) vectorize_width(2) unroll_count(8)
>
> for (int i = 0; i < SIZE; ++i)
>
> A[i] += B[i] + K;
>
> }
>
> Thanks,
> Xiaochu
>
> On Aug 12, 2016 4:06 AM, "Andrey Bokhanko" <andreybokhanko at gmail.com>
> wrote:
>
>> Hi Xiaochu,
>>
>> Clang uses -O0 by default, that doesn't run any optimizations. Try
>> supplying -O1 or higher.
>>
>> Yours,
>> Andrey
>>
>>
>> On Fri, Aug 12, 2016 at 1:04 AM, Xiaochu Liu via llvm-dev <
>> llvm-dev at lists.llvm.org> wrote:
>>
>>> Hi there ,
>>>
>>> I use clang-cl /Qvec test.c to compile the code. But the pass
>>> LoopVectorizer is never invoked.
>>>
>>> I was wondering if this is sufficient to enable auto vectorizer?
>>>
>>> Thanks,
>>> Xiaochu
>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>
>>>
>>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160812/1d9ab5c7/attachment.html>
More information about the llvm-dev
mailing list