id summary reporter owner description type status milestone component version severity resolution keywords cc 13180 Loop vectorisation using boost multi_array Nicolas Barrier Ronald Garcia "Dear all I am trying to optimize a huge code that uses boost multi-arrays. And when I compile the code with the ''-qopt-report=2 -qopt-report-phase=vec'' options, I notice in the compilation report that most loops are not vectorized. I thus made a simple program to understand why, and I noticed that a loop that uses C array is vectorized, while the same loop using boost multi array is not (see test_vector.cpp) (see attached .cpp file). I get the following message: {{{ LOOP BEGIN at test_vector.cpp(29,5) remark #15520: loop was not vectorized: loop with multiple exits cannot be vectorized unless it meets search loop idiom criteria LOOP END }}} A way to overcome this would be to use the data pointer in combination with the {{{#pragma ivdep}}} statement, but this becomes complicated when working on multimensional arrays. I thus would like to know if I am doing something wrong (for instance in the boost array initialisation), and if there is a way to fix this? I am using the icpc compiler, version 16.0.4, with boost library version 1.65. The program is compiled as follows: {{{ icpc -Ilibs/cpp/boost_1_65_0/ -O3 -qopt-report=2 -qopt-report-phase=vec test_vector.cpp }}} Thanks a lot Nicolas Barrier" Support Requests new To Be Determined multi_array Boost 1.65.0 Optimization