Intel(R) Advisor can now assist with vectorization and show optimization report messages with your source code. See "https://software.intel.com/en-us/intel-advisor-xe" for details. Intel(R) C++ Compiler for applications running on Intel(R) 64, Version 17.0.4.210 Build 20170411 Compiler options: (null) Report from: Interprocedural optimizations [ipo] WHOLE PROGRAM (SAFE) [EITHER METHOD]: false WHOLE PROGRAM (SEEN) [TABLE METHOD]: false WHOLE PROGRAM (READ) [OBJECT READER METHOD]: false INLINING OPTION VALUES: -Qinline-factor: 100 -Qinline-min-size: 30 -Qinline-max-size: 230 -Qinline-max-total-size: 2000 -Qinline-max-per-routine: disabled -Qinline-max-per-compile: disabled Begin optimization report for: Copy(unsigned char *, __int64, unsigned char *, __int64, __int64, __int64) Report from: Interprocedural optimizations [ipo] C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(3,182):INLINE REPORT START:(Copy(unsigned char *, __int64, unsigned char *, __int64, __int64, __int64)) [1/1=100.0%] C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(6,5):(1)-> EXTERN: memcpy(void *, const void *, size_t) INLINE REPORT END Report from: Loop nest, Vector & Auto-parallelization optimizations [loop, vec, par] LOOP BEGIN at C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(5,4) C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(6,5):remark #15527: loop was not vectorized: function call to memcpy(void *, const void *, size_t) cannot be vectorized LOOP END LOOP BEGIN at C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(12,4) C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(12,4):remark #15344: loop was not vectorized: vector dependence prevents vectorization C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(12,4):remark #15346: vector dependence: assumed OUTPUT dependence between *(dst+i*vst+j) (22:6) and *(dst+i*vst+j+2) (24:6) C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(12,4):remark #15346: vector dependence: assumed OUTPUT dependence between *(dst+i*vst+j+2) (24:6) and *(dst+i*vst+j) (22:6) LOOP BEGIN at C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(13,5) C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(13,5):remark #15344: loop was not vectorized: vector dependence prevents vectorization C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(13,5):remark #15346: vector dependence: assumed OUTPUT dependence between *(dst+i*vst+j) (22:6) and *(dst+i*vst+j+2) (24:6) C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(13,5):remark #15346: vector dependence: assumed OUTPUT dependence between *(dst+i*vst+j+2) (24:6) and *(dst+i*vst+j) (22:6) LOOP BEGIN at C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(15,6) C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(15,6):remark #15335: loop was not vectorized: vectorization possible but seems inefficient. Use vector always directive or /Qvec-threshold0 to override C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(17,8):remark #15328: vectorization support: non-unit strided load was emulated for the variable <*(src+k*3+l*sst)>, stride is 3 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(18,8):remark #15328: vectorization support: non-unit strided load was emulated for the variable <*(src+k*3+1+l*sst)>, stride is 3 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(19,8):remark #15328: vectorization support: non-unit strided load was emulated for the variable <*(src+k*3+2+l*sst)>, stride is 3 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(15,6):remark #15305: vectorization support: vector length 4 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(15,6):remark #15309: vectorization support: normalized vectorization overhead 0.544 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(15,6):remark #15452: unmasked strided loads: 3 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(15,6):remark #15475: --- begin vector cost summary --- C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(15,6):remark #15476: scalar cost: 24 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(15,6):remark #15477: vector cost: 42.750 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(15,6):remark #15478: estimated potential speedup: 0.550 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(15,6):remark #15487: type converts: 3 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(15,6):remark #15488: --- end vector cost summary --- LOOP BEGIN at C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7) C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7):remark #15335: loop was not vectorized: vectorization possible but seems inefficient. Use vector always directive or /Qvec-threshold0 to override C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(17,8):remark #15328: vectorization support: non-unit strided load was emulated for the variable <*(src+k*3+l*sst)>, stride is unknown to compiler C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(18,8):remark #15328: vectorization support: non-unit strided load was emulated for the variable <*(src+k*3+1+l*sst)>, stride is unknown to compiler C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(19,8):remark #15328: vectorization support: non-unit strided load was emulated for the variable <*(src+k*3+2+l*sst)>, stride is unknown to compiler C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7):remark #15305: vectorization support: vector length 4 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7):remark #15452: unmasked strided loads: 3 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7):remark #15475: --- begin vector cost summary --- C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7):remark #15476: scalar cost: 24 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7):remark #15477: vector cost: 42.500 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7):remark #15478: estimated potential speedup: 0.560 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7):remark #15487: type converts: 3 C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7):remark #15488: --- end vector cost summary --- C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7):remark #25439: unrolled with remainder by 2 LOOP END LOOP BEGIN at C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(16,7) Remainder LOOP END LOOP END LOOP END LOOP END Report from: Code generation optimizations [cg] C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(6,5):remark #34014: optimization advice for memcpy: increase the destination's alignment to 16 (and use __assume_aligned) to speed up library implementation C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(6,5):remark #34014: optimization advice for memcpy: increase the source's alignment to 16 (and use __assume_aligned) to speed up library implementation C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(6,5):remark #34026: call to memcpy implemented as a call to optimized library version C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(3,182):remark #34051: REGISTER ALLOCATION : [Copy] C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp:3 Hardware registers Reserved : 2[ rsp rip] Available : 39[ rax rdx rcx rbx rbp rsi rdi r8-r15 mm0-mm7 zmm0-zmm15] Callee-save : 18[ rbx rbp rsi rdi r12-r15 xmm6-xmm15] Assigned : 15[ rax rdx rcx rbx rbp rsi rdi r8-r15] Routine temporaries Total : 106 Global : 49 Local : 57 Regenerable : 7 Spilled : 18 Routine stack Variables : 0 bytes* Reads : 0 [0.00e+000 ~ 0.0%] Writes : 0 [0.00e+000 ~ 0.0%] Spills : 88 bytes* Reads : 11 [8.44e+001 ~ 1.4%] Writes : 11 [7.19e+001 ~ 1.2%] Notes *Non-overlapping variables and spills may share stack space, so the total stack size might be less than this. =========================================================================== Report from: Profile guided optimizations [pgo] C:\Users\Administrator\Documents\Visual Studio 2017\Projects\BigPicDLL\BigPicDLL\BigPicDLL.cpp(3,182):remark #24003: Copy(unsigned char *, __int64, unsigned char *, __int64, __int64, __int64): profile feedback used a static estimate profile 0 out of 1 routine(s) used training profile data for PGO feedback 0 out of 1 routine(s) were unable to use training profile data for PGO feedback 0 out of 1 routine(s) were unable to find training profile data for PGO feedback 1 out of 1 routine(s) used a static estimate profile for PGO feedback