1. Ask developers of gcc 2. I rather doubt that the code is going to be vectorized at O0. Best regards, Alexey Bataev 30 дек. 2017 г., в 14:49, hameeza ahmed via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> написал(а): i changed my code to following; #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]; printf("c value %f",c[i]); } still no effect of omp simd? On Sun, Dec 31, 2017 at 12:26 AM, Craig Topper <craig.topper at gmail.com<mailto:craig.topper at gmail.com>> wrote: 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<mailto: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<mailto: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<mailto: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/5253a901/attachment.html>