<?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 Loop Vectorization:  &amp;quot;unsupported data type&amp;quot; in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Loop-Vectorization-quot-unsupported-data-type-quot/m-p/746109#M4052</link>
    <description>The blend of real*4 and real*8 will affect the vectorization to some extent&lt;BR /&gt;However, the loop control variable N is an index that does not the index that represent the adjacent data. (That which can be vectorized)This would be the left most index. Try to rework the code such that the inner most loop operates on the left most index.&lt;BR /&gt;&lt;BR /&gt;Either redefine the arrays to TRnn(N,M1,NN)&lt;BR /&gt;or&lt;BR /&gt;arrange your DO loops to nest on NN, N and M1&lt;BR /&gt;&lt;BR /&gt;Jim Dempsey&lt;BR /&gt;</description>
    <pubDate>Mon, 03 May 2010 03:28:59 GMT</pubDate>
    <dc:creator>jimdempseyatthecove</dc:creator>
    <dc:date>2010-05-03T03:28:59Z</dc:date>
    <item>
      <title>Loop Vectorization:  "unsupported data type"</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Loop-Vectorization-quot-unsupported-data-type-quot/m-p/746108#M4051</link>
      <description>&lt;DIV id="_mcePaste"&gt;&lt;DIV id="_mcePaste"&gt;Hi.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;A while ago I asked about vectorizing with intel fortran, and was told that it did not support complex variables. I've decided to take another stab at it, and have rewritten a simple loop from my code without using any COMPLEX types.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;My core loop looks like this:&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;     DO 400 N=NMIN,NMAX&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;       DV1N=M*DV1(N)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;       DV2N=DV2(N)&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;/DIV&gt;&lt;DIV id="_mcePaste"&gt;       D11=DV1N*DV1NN&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;       D12=DV1N*DV2NN&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;       D21=DV2N*DV1NN&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;       D22=DV2N*DV2NN&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; &lt;SPAN style="white-space: pre;"&gt;		&lt;/SPAN&gt;  VVR=VVR+(&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  &amp;amp;&lt;SPAN style="white-space: pre;"&gt;			&lt;/SPAN&gt; (TR11(M1,N,NN)*D11 + TR21(M1,N,NN)*D21&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  &amp;amp;&lt;SPAN style="white-space: pre;"&gt;			&lt;/SPAN&gt;  +TR12(M1,N,NN)*D12 + TR22(M1,N,NN)*D22)&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;  &amp;amp;&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;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;400    CONTINUE&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;/DIV&gt;&lt;DIV id="_mcePaste"&gt;But I get:&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;|&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ampl.f(253): (col. 9) remark: vector dependence: assumed ANTI dependence between vvr line 253 and vvr line 253.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ampl.f(253): (col. 9) remark: vector dependence: assumed FLOW dependence between vvr line 253 and vvr line 253.&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;ampl.f(253): (col. 9) remark: vector dependence: assumed ANTI dependence between vvr line 253 and vvr line 253.&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;/DIV&gt;&lt;DIV id="_mcePaste"&gt;Also, TR11, TR12, TR21, TR22, VRR are all REAL *4, while the rest are all REAL *8 (but maybe could be changed if needed).&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Sun, 02 May 2010 04:57:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Loop-Vectorization-quot-unsupported-data-type-quot/m-p/746108#M4051</guid>
      <dc:creator>saratoga</dc:creator>
      <dc:date>2010-05-02T04:57:03Z</dc:date>
    </item>
    <item>
      <title>Loop Vectorization:  "unsupported data type"</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Loop-Vectorization-quot-unsupported-data-type-quot/m-p/746109#M4052</link>
      <description>The blend of real*4 and real*8 will affect the vectorization to some extent&lt;BR /&gt;However, the loop control variable N is an index that does not the index that represent the adjacent data. (That which can be vectorized)This would be the left most index. Try to rework the code such that the inner most loop operates on the left most index.&lt;BR /&gt;&lt;BR /&gt;Either redefine the arrays to TRnn(N,M1,NN)&lt;BR /&gt;or&lt;BR /&gt;arrange your DO loops to nest on NN, N and M1&lt;BR /&gt;&lt;BR /&gt;Jim Dempsey&lt;BR /&gt;</description>
      <pubDate>Mon, 03 May 2010 03:28:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Loop-Vectorization-quot-unsupported-data-type-quot/m-p/746109#M4052</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2010-05-03T03:28:59Z</dc:date>
    </item>
    <item>
      <title>Loop Vectorization:  "unsupported data type"</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Loop-Vectorization-quot-unsupported-data-type-quot/m-p/746110#M4053</link>
      <description>Some cases of complex vectorization are supported with -msse3 (and Intel-only options which include SSE3).&lt;BR /&gt;As Jim indicated, you would have to arrange your data for stride 1 to support vectorization, at least with options short of SSE4, and you would need to avoid the mixed data types. Better support of vectorization with combined single and double precision is under development, but that will not eliminate the problem you have here. Also, the otherwise desirable option -fp-model source will suppress vectorization of sum reduction, in case you happen to be setting it. The message about dependencies isn't very helpful; it seems most likely to apply in the latter case.&lt;BR /&gt;</description>
      <pubDate>Mon, 03 May 2010 03:57:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Loop-Vectorization-quot-unsupported-data-type-quot/m-p/746110#M4053</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2010-05-03T03:57:30Z</dc:date>
    </item>
  </channel>
</rss>

