[llvm-dev] Issues with omp simd

Craig Topper via llvm-dev llvm-dev at lists.llvm.org
Sat Dec 30 11:26:28 PST 2017


The for loop has no effect on the observable behavior of the program. If
you run the program there is no way to tell if the numbers were added or
not. So the loop doesn’t matter, so the compiler deleted the code. You need
to print the contents of c or something so that it matters.



On Sat, Dec 30, 2017 at 11:19 AM hameeza ahmed <hahmed2305 at gmail.com> wrote:

> I even tried following;
>
> int main(int argc, char **argv)
> {
>     const int size = 1000000;
>
>
>     float a[size], b[size],c[size];
>
>
>
>         #pragma omp simd
>         for (int i=0; i<size; ++i)
>         {
>              a[i]=2; b[i]=3; c[i]=4;
>             c[i]= a[i] + b[i];
>         }
>
>
>     return 0;
> }
> but the output with and without openmp simd is same. why is that so?
>
> On Sun, Dec 31, 2017 at 12:01 AM, Craig Topper <craig.topper at gmail.com>
> wrote:
>
>> I didn’t look at the assembly, but you didn’t initialize your arrays.
>> Your program isn’t meaningful.
>>
>> On Sat, Dec 30, 2017 at 9:08 AM hameeza ahmed <hahmed2305 at gmail.com>
>> wrote:
>>
>>> hello,
>>>
>>> i am trying to optimize omp simd loop as follows
>>>
>>> int main(int argc, char **argv)
>>> {
>>>     const int size = 1000000;
>>>
>>>
>>>     float a[size], b[size],c[size];
>>>
>>>
>>>
>>>         #pragma omp simd
>>>         for (int i=0; i<size; ++i)
>>>         {
>>>             c[i]= a[i] + b[i];
>>>         }
>>>
>>>
>>>     return 0;
>>> }
>>>
>>> i run it using the following command;
>>>
>>> g++ -O0 --std=c++14 -fopenmp-simd lab.cpp  -Iinclude -S -o lab.s
>>>
>>> when i compared it with code as follows without simd
>>>
>>>
>>> int main(int argc, char **argv)
>>> {
>>>     const int size = 1000000;
>>>
>>>
>>>     float a[size], b[size],c[size];
>>>
>>>
>>>
>>>         for (int i=0; i<size; ++i)
>>>         {
>>>             c[i]= a[i] + b[i];
>>>         }
>>>
>>>
>>>     return 0;
>>> }
>>>
>>> using following command
>>>
>>> g++ -O0 --std=c++14  lab.cpp -Iinclude -S -o lab.s
>>>
>>> I am getting the same assembly. Why is that so? why not omp simd is more
>>> efficient?
>>>
>>> Please help
>>>
>>>
>>> --
>> ~Craig
>>
>
> --
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171230/af52db20/attachment-0001.html>


More information about the llvm-dev mailing list