The code samples for the webinar "Further Vectorization Features of the Intel Compiler" given on 4/7/2015 are attached below.
Here are some examples of command lines that may be used to build them. This list is not intended to be complete or to be a tutorial as such, just a guide to things to try. It uses Linux* switch syntax; Windows* equivalents are closely similar.
See the presentation for more detail; slides and video will be posted separately and later.
icpc -c -qopt-report-phase=vec -qopt-report=3 no_stl.cpp
icpc -c -qopt-report-file=stderr -qopt-report-phase=vec -qopt-report=2 stl_vec.cpp
icpc -c -std=c++11 -qopt-report-phase=vec -qopt-report=3 stl_vec_11.cpp
icpc -O2 -std=c++11 –I$BOOST/boost_1_56 sumsq.cpp timer.cpp; ./a.out (you may need to install boost)
icpc -O2 -std=c++11 –I$BOOST/boost_1_56 -DALIGN_CLASS sumsq.cpp timer.cpp; ./a.out
icpc -O2 -std=c++11 –I$BOOST/boost_1_56 -DBOOST_ALIGN sumsq.cpp timer.cpp; ./a.out
icpc -O2 -xcore-avx2 -std=c++11 -I$BOOST/boost_1_56 sumsq.cpp timer.cpp; ./a.out
icpc -c -std=c++11 –xcore-avx2 -qopt-report-file=stderr -qopt-report-phase=loop,vec -qopt-report3 -qopt-report-routine=main sumsq.cpp
ifort -fpp -c -qopt-report-phase=loop,vec -qopt-report-file=stderr dist.F90
ifort -fpp -c -qopenmp-simd -qopt-report-phase=loop,vec -qopt-report-file=stderr -qopt-report-routine=dist dist.F90
ifort -fpp -qopenmp-simd -DKNOWN_TRIP_COUNT -qopt-report-phase=loop,vec -qopt-report-file=stderr -qopt-report-routine=dist drive_dist.F90 dist.F90; ./a.out
icc -c –std=c99 -xavx -qopt-report-file=stderr -qopt-report-phase=vec mulmv.c
icc -c -std=c99 -xavx -fargument-noalias -qopt-report=4 -qopt-report-file=stderr -qopt-report-phase=vec mulmv.c
(-fargument-noalias becomes /Qalias-args- on Windows)
ifort -O2 -xavx -qopt-report=3 -qopt-report-file=stderr -qopt-report-phase= loop,vec -qopt-report-routine=indirect drive_indirect.F90 indirect.F90; ./a.out
ifort -xcore-avx2 -S indirect.F90
grep gather indirect.s