<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Enforcing Loop Vectorization with Array Notations in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740128#M86</link>
    <description>I wonder what would be preventing the compiler from vectorizing the innermost loop in the following function (e.g.):&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;	template&lt;CLASS t=""&gt; inline void MatrixVectorProduct(const matrix&lt;T&gt;&amp;amp; m, const std::vector&lt;T&gt;&amp;amp; rhs, std::vector&lt;T&gt;&amp;amp; lhs)&lt;/T&gt;&lt;/T&gt;&lt;/T&gt;&lt;/CLASS&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	{&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;size_t cols = m.cols();&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;const T* restrict pcol = &amp;amp;(*rhs.begin());&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;//outer loop (/Qvec-report:3): nonstandard loop is not a vectorization candidate (Fine!)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;_Cilk_for(size_t i=0; i&lt;M.ROWS&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;{&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;const T* prow = &amp;amp;(*(m.begin() + i * cols));&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;&lt;/SPAN&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;//inner loop(/Qvec-report:3): modifying order of operation not allowed under given switches (?)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;lhs&lt;I&gt; = __sec_reduce_add( prow[0:cols] * pcol[0:cols] );&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;}&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	}&lt;/DIV&gt;&lt;/M.ROWS&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Under the switches: /O3 /Qstd=c99 /Qopenmp /Qfp-speculation:safe /Qrestrict /arch:SSE2, this function's performance approaches Intel MKL's 'cblas_dgemv()'.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Cheers,&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Thu, 16 Dec 2010 20:18:30 GMT</pubDate>
    <dc:creator>Jorge_Martinis</dc:creator>
    <dc:date>2010-12-16T20:18:30Z</dc:date>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740128#M86</link>
      <description>I wonder what would be preventing the compiler from vectorizing the innermost loop in the following function (e.g.):&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;	template&lt;CLASS t=""&gt; inline void MatrixVectorProduct(const matrix&lt;T&gt;&amp;amp; m, const std::vector&lt;T&gt;&amp;amp; rhs, std::vector&lt;T&gt;&amp;amp; lhs)&lt;/T&gt;&lt;/T&gt;&lt;/T&gt;&lt;/CLASS&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	{&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;size_t cols = m.cols();&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;const T* restrict pcol = &amp;amp;(*rhs.begin());&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;//outer loop (/Qvec-report:3): nonstandard loop is not a vectorization candidate (Fine!)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;_Cilk_for(size_t i=0; i&lt;M.ROWS&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;{&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;const T* prow = &amp;amp;(*(m.begin() + i * cols));&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;&lt;/SPAN&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;//inner loop(/Qvec-report:3): modifying order of operation not allowed under given switches (?)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;lhs&lt;I&gt; = __sec_reduce_add( prow[0:cols] * pcol[0:cols] );&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;}&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	}&lt;/DIV&gt;&lt;/M.ROWS&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Under the switches: /O3 /Qstd=c99 /Qopenmp /Qfp-speculation:safe /Qrestrict /arch:SSE2, this function's performance approaches Intel MKL's 'cblas_dgemv()'.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Cheers,&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 16 Dec 2010 20:18:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740128#M86</guid>
      <dc:creator>Jorge_Martinis</dc:creator>
      <dc:date>2010-12-16T20:18:30Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740129#M87</link>
      <description>When I tried this, instantiated with both float and double and using both the Windows and Linux versions of the compiler, the vectorization report I get says that the inner loop is vectorized. What does your matrix class look like? Are you using the released version of the compiler, or a beta, or something else?&lt;BR /&gt;&lt;BR /&gt;- Pablo</description>
      <pubDate>Fri, 17 Dec 2010 15:30:42 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740129#M87</guid>
      <dc:creator>Pablo_H_Intel</dc:creator>
      <dc:date>2010-12-17T15:30:42Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740130#M88</link>
      <description>I think we may have figured out the trigger here. Assuming you're building out of the IDE, is /fp:precise specified by default? Try changing to /fp:fast if it is.&lt;BR /&gt;&lt;BR /&gt;The question I'm following up on is whether this behavior of the vectorizer makes sense in the context of array notations.</description>
      <pubDate>Fri, 17 Dec 2010 22:54:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740130#M88</guid>
      <dc:creator>Brandon_H_Intel</dc:creator>
      <dc:date>2010-12-17T22:54:13Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740131#M89</link>
      <description>Indeed, I intentionally specify /fp:precise.</description>
      <pubDate>Fri, 17 Dec 2010 23:31:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740131#M89</guid>
      <dc:creator>Jorge_Martinis</dc:creator>
      <dc:date>2010-12-17T23:31:00Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740132#M90</link>
      <description>After switching to /fp:fast, the loop is vectorized. However, it crashes at runtime with thread/call stack stalled right at the loop.</description>
      <pubDate>Sat, 18 Dec 2010 00:16:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740132#M90</guid>
      <dc:creator>Jorge_Martinis</dc:creator>
      <dc:date>2010-12-18T00:16:11Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740133#M91</link>
      <description>My matrix class uses contiguous storage and row-major layout. I am using the Intel Composer 2011 XE Update 1 (12.1.127).</description>
      <pubDate>Mon, 20 Dec 2010 14:39:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740133#M91</guid>
      <dc:creator>Jorge_Martinis</dc:creator>
      <dc:date>2010-12-20T14:39:15Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740134#M92</link>
      <description>Jorge,&lt;BR /&gt;&lt;BR /&gt;If you turn on /W4, do you get any remarks like the following?&lt;BR /&gt;&lt;BR /&gt;&lt;P&gt;remark #18009: A temporary array is allocated to resolve data dependencies&lt;BR /&gt;&lt;BR /&gt;If so, I think you might have a stack overflow caused by some of the array notation code. Let me know - I have an open problem report on this that I can link this thread to.&lt;/P&gt;</description>
      <pubDate>Tue, 21 Dec 2010 17:53:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740134#M92</guid>
      <dc:creator>Brandon_H_Intel</dc:creator>
      <dc:date>2010-12-21T17:53:53Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740135#M93</link>
      <description>Brandon,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;After turning on /W4, I found no remarks. Under /fp:fast the MatrixVectorProduct() function (thread #1) builds and runs.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;On the other hand, the following function works under /fp:precise (w/o innermost loop vectorization) whereas under /fp:fast the innermost loop is vectorized but it crashes at runtime due to an unhandled access violation.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;	template&lt;CLASS t=""&gt; inline void MatrixProduct(const matrix&lt;T&gt;&amp;amp; m, const matrix&lt;T&gt;&amp;amp; rhs, matrix&lt;T&gt;&amp;amp; lhs)&lt;/T&gt;&lt;/T&gt;&lt;/T&gt;&lt;/CLASS&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;	{&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;//assert(...) on all dimensions&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;size_t mcols = m.cols();&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;size_t ncols = rhs.cols();&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;const T* pcol = &amp;amp;(*rhs.begin());//restrict pointer candidate&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;_Cilk_for(size_t i=0; i&lt;M.ROWS&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;{&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;const T* prow = &amp;amp;(*(m.begin() + i * mcols));&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;for(size_t j=0; j&lt;NCOLS&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;{&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;			&lt;/SPAN&gt;lhs&lt;I&gt;&lt;J&gt; = __sec_reduce_add(prow[0:mcols] * pcol&lt;J&gt;);//acc violation on vect&lt;/J&gt;&lt;/J&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;}&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;SPAN style="white-space: pre;"&gt;	&lt;/SPAN&gt;}&lt;/DIV&gt;&lt;/NCOLS&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;}&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;Compiler:&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/c /O2 /Ob2 /Oi /Ot /Oy /Qipo /I "C:\\Program Files (x86)\\Intel\\ComposerXE-2011\\mkl\\include\\ia32" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /EHsc /MD /GS /Gy /arch:SSE2 /fp:fast /Fo"Release/" /Fd"Release/vc90.pdb" /W4 /nologo /Zi /Qopenmp /Quse-intel-optimized-headers /Qstd=c99 /Qrestrict /Qvec-report3&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;Linker:&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;mkl_intel_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /INCREMENTAL:NO /nologo /LIBPATH:"C:\\Program Files (x86)\\Intel\\ComposerXE-2011\\mkl\\lib\\ia32" /NODEFAULTLIB:"libcmt.lib" /TLBID:1 /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /DYNAMICBASE /NXCOMPAT /MACHINE:X86&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;Cheers,&lt;/DIV&gt;&lt;/M.ROWS&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 21 Dec 2010 19:05:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740135#M93</guid>
      <dc:creator>Jorge_Martinis</dc:creator>
      <dc:date>2010-12-21T19:05:37Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740136#M94</link>
      <description>Hi Jorge,&lt;BR /&gt;&lt;BR /&gt;This definitely looks like a compiler issue from what you've sent me. The vectorizer is doing something improperly, I think. I've created a problem report for our vectorizer team, and I'll update the thread as their investigation proceeds.</description>
      <pubDate>Thu, 23 Dec 2010 21:48:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740136#M94</guid>
      <dc:creator>Brandon_H_Intel</dc:creator>
      <dc:date>2010-12-23T21:48:34Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740137#M95</link>
      <description>Brandon,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I think I've found an answer to our follow-up question in a related article at:&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;A href="http://software.intel.com/en-us/articles/consistency-of-floating-point-results-using-the-intel-compiler/"&gt;http://software.intel.com/en-us/articles/consistency-of-floating-point-results-using-the-intel-compiler/&lt;/A&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;It seems that the behavior makes sense on this context due to the fact that the /fp:precise model allows only value-safe optimizations. The reduction loop in __sec_reduce_add() implies sums reassociation, making it value-unsafe.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Question remains on why it does fail under /fp:fast though.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 04 Jan 2011 17:28:54 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740137#M95</guid>
      <dc:creator>Jorge_Martinis</dc:creator>
      <dc:date>2011-01-04T17:28:54Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740138#M96</link>
      <description>Hi Jorge,&lt;BR /&gt;&lt;BR /&gt;Correct. Because /fp:precise is specified, the compiler can't safely vectorize the array notation reduction. However, the code crashing after vectorization is still an issue it seems to me.</description>
      <pubDate>Tue, 04 Jan 2011 17:39:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740138#M96</guid>
      <dc:creator>Brandon_H_Intel</dc:creator>
      <dc:date>2011-01-04T17:39:01Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740139#M97</link>
      <description>Brandon,&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I agree. A very important one indeed.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I look forward to hearing from that.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Cheers,&lt;/DIV&gt;</description>
      <pubDate>Tue, 04 Jan 2011 18:22:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740139#M97</guid>
      <dc:creator>Jorge_Martinis</dc:creator>
      <dc:date>2011-01-04T18:22:01Z</dc:date>
    </item>
    <item>
      <title>Enforcing Loop Vectorization with Array Notations</title>
      <link>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740140#M98</link>
      <description>Hi Jorge,&lt;BR /&gt;&lt;BR /&gt;We've put a fix in on update 3 for this issue. Try update 3, and let me know if you still have problems.</description>
      <pubDate>Fri, 08 Apr 2011 20:31:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Enforcing-Loop-Vectorization-with-Array-Notations/m-p/740140#M98</guid>
      <dc:creator>Brandon_H_Intel</dc:creator>
      <dc:date>2011-04-08T20:31:37Z</dc:date>
    </item>
  </channel>
</rss>

