<?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 Quote:Vladimir Sedach wrote: in Intel® ISA Extensions</title>
    <link>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942232#M3970</link>
    <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Vladimir Sedach wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;On first call to&amp;nbsp;_may_i_use_cpu_feature() they fill&amp;nbsp;__intel_cpu_feature_indicator_x with all the flags.&lt;BR /&gt;
	This snippet shows how they set&amp;nbsp;_FEATURE_BMI 0x00080000ULL:&lt;/P&gt;

&lt;P&gt;000000013F874D2E &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,7 &amp;nbsp;&lt;BR /&gt;
	000000013F874D33 &amp;nbsp;xor &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ecx,ecx &amp;nbsp;&lt;BR /&gt;
	000000013F874D35 &amp;nbsp;cpuid &amp;nbsp;&lt;BR /&gt;
	000000013F874D37 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [rsp+20h],eax &amp;nbsp;&lt;BR /&gt;
	000000013F874D3B &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [rsp+24h],ebx &amp;nbsp;&lt;BR /&gt;
	...&lt;BR /&gt;
	000000013F874D5E &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ebx,dword ptr [rsp+24h] &amp;nbsp;&lt;BR /&gt;
	000000013F874D62 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,ebx &amp;nbsp;&lt;BR /&gt;
	000000013F874D64 &amp;nbsp;and &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,108h &amp;nbsp;&lt;BR /&gt;
	000000013F874D69 &amp;nbsp;lea &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rdx,[r10+80000h] &amp;nbsp;&lt;BR /&gt;
	000000013F874D70 &amp;nbsp;cmp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,108h &amp;nbsp;&lt;BR /&gt;
	000000013F874D75 &amp;nbsp;cmove &amp;nbsp; &amp;nbsp; &amp;nbsp; r10,rdx &amp;nbsp;&lt;BR /&gt;
	...&lt;BR /&gt;
	000000013F874E46 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; qword ptr [__intel_cpu_feature_indicator_x (013F88A050h)],r10&lt;/P&gt;

&lt;P&gt;So BMI means both&amp;nbsp;BMI1 and&amp;nbsp;BMI2 are set.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Indeed since "108h" is for bit 3 (BMI1) and 8 (BMI2) set in the cpuid extended features.&lt;/P&gt;

&lt;P&gt;Thanks a lot for your deep investigation.&lt;/P&gt;

&lt;P&gt;btw I have remarked that _&lt;EM&gt;may_i_use_cpu_feature&amp;nbsp;&amp;nbsp;&lt;/EM&gt;has a more comprehensive list of flags here : &lt;A href="http://software.intel.com/sites/landingpage/IntrinsicsGuide/"&gt;http://software.intel.com/sites/landingpage/IntrinsicsGuide/&lt;/A&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 10 Mar 2014 11:45:00 GMT</pubDate>
    <dc:creator>bronxzv</dc:creator>
    <dc:date>2014-03-10T11:45:00Z</dc:date>
    <item>
      <title>ippGetCpuFeatures for AVX2 support</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942226#M3964</link>
      <description>&lt;P&gt;I'm relying at the moment on inline ASM to check for AVX2 support, but use the IPP function &lt;EM&gt;ippGetCpuFeatures &lt;/EM&gt;to check for AVX and SSEx features.&lt;/P&gt;

&lt;P&gt;Using the IPP function is arguably a better solution (simple &amp;amp; clean) than inline ASM, so I&amp;nbsp;have a comment in my code for the AVX2 checks along the line of "use the IPP stuff instead when available"&lt;/P&gt;

&lt;P&gt;I'm doing some cleanup these days and I remarked a series of new flags in &lt;EM&gt;ippcore.h,&lt;/EM&gt; but it looks like several of these new flags aren't explained in the latest IPP documentation.&lt;/P&gt;

&lt;P&gt;It will be great to have full documentation for the &lt;EM&gt;ippCPUID_AVX2 &lt;/EM&gt;flag, particularly to know if it implies FMA, BMI1, BMI2 etc., is this information available&amp;nbsp; somewhere ?&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 09 Mar 2014 16:47:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942226#M3964</guid>
      <dc:creator>bronxzv</dc:creator>
      <dc:date>2014-03-09T16:47:15Z</dc:date>
    </item>
    <item>
      <title>Why not _may_i_use_cpu</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942227#M3965</link>
      <description>&lt;P&gt;Why not&amp;nbsp;_may_i_use_cpu_feature() in Intel's immintrin.h.&lt;BR /&gt;
	&lt;A href="http://software.intel.com/sites/products/documentation/doclib/iss/2013/compiler/cpp-lin/GUID-ABD6CC8A-7FEE-40FB-ACA0-616DD2A1FD04.htm" target="_blank"&gt;http://software.intel.com/sites/products/documentation/doclib/iss/2013/compiler/cpp-lin/GUID-ABD6CC8A-7FEE-40FB-ACA0-616DD2A1FD04.htm&lt;/A&gt;&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 09 Mar 2014 18:04:23 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942227#M3965</guid>
      <dc:creator>Vladimir_Sedach</dc:creator>
      <dc:date>2014-03-09T18:04:23Z</dc:date>
    </item>
    <item>
      <title>Quote:Vladimir Sedach wrote:</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942228#M3966</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Vladimir Sedach wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Why not&amp;nbsp;_may_i_use_cpu_feature() in Intel's immintrin.h.&lt;BR /&gt;
	&lt;A href="http://software.intel.com/sites/products/documentation/doclib/iss/2013/compiler/cpp-lin/GUID-ABD6CC8A-7FEE-40FB-ACA0-616DD2A1FD04.htm"&gt;http://software.intel.com/sites/products/documentation/doclib/iss/2013/c...&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Thank you for the advice, I overlooked this function, I'll have a try.&lt;/P&gt;

&lt;P&gt;Note that I don't see AVX2 (256-bit packed int instructions) in the list of input flags.&lt;/P&gt;

&lt;P&gt;Also the documentation isn't very extensive, for example are we sure that &lt;EM&gt;_FEATURE_BMI &lt;/EM&gt;implies BMI1 and BMI2 ?&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2014 07:15:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942228#M3966</guid>
      <dc:creator>bronxzv</dc:creator>
      <dc:date>2014-03-10T07:15:00Z</dc:date>
    </item>
    <item>
      <title>In icc 13 there is</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942229#M3967</link>
      <description>&lt;P&gt;In icc 13 there is&lt;BR /&gt;
	_FEATURE_AVX2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x00800000ULL&lt;BR /&gt;
	&lt;BR /&gt;
	_FEATURE_BMI (0x00080000ULL) is Intel's mistake.&lt;BR /&gt;
	I think BMI flag means&amp;nbsp;BMI1 +&amp;nbsp;BMI2 if AVX2 flag is set and BMI1 otherwise )))&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;A href="http://chessprogramming.wikispaces.com/BMI1" target="_blank"&gt;http://chessprogramming.wikispaces.com/BMI1&lt;/A&gt;&lt;BR /&gt;
	&lt;A href="http://chessprogramming.wikispaces.com/BMI2" target="_blank"&gt;http://chessprogramming.wikispaces.com/BMI2&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2014 09:06:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942229#M3967</guid>
      <dc:creator>Vladimir_Sedach</dc:creator>
      <dc:date>2014-03-10T09:06:11Z</dc:date>
    </item>
    <item>
      <title>Quote:Vladimir Sedach wrote:I</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942230#M3968</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Vladimir Sedach wrote:&lt;BR /&gt;I think BMI flag means&amp;nbsp;BMI1 +&amp;nbsp;BMI2 if AVX2 flag is set and BMI1 otherwise )))&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;We can't be sure since as per your link &lt;A href="http://chessprogramming.wikispaces.com/BMI2"&gt;http://chessprogramming.wikispaces.com/BMI2&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;"Along with &lt;A class="wiki_link" href="http://chessprogramming.wikispaces.com/AVX2"&gt;&lt;U&gt;&lt;FONT color="#0066cc"&gt;AVX2&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;, BMI2 was expected to be part of &lt;A class="wiki_link" href="http://chessprogramming.wikispaces.com/Intel"&gt;&lt;U&gt;&lt;FONT color="#0066cc"&gt;Intel's&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; &lt;A class="wiki_link_ext" href="http://en.wikipedia.org/wiki/Haswell_%28microarchitecture%29" rel="nofollow"&gt;&lt;U&gt;&lt;FONT color="#0066cc"&gt;Haswell&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; architecture planned for 2013, but is not yet implemented in the first Haswell generation of mid 2013 &lt;!-- ws:start:WikiTextRefRule:15:&amp;amp;lt;ref&amp;amp;gt;&amp;lt;a class=&amp;quot;wiki_link_ext&amp;quot; href=&amp;quot;http://de.linkedin.com/pub/andreas-stiller/a/381/aa9&amp;quot; rel=&amp;quot;nofollow&amp;quot;&amp;gt;Andreas Stiller&amp;lt;/a&amp;gt; (&amp;lt;strong&amp;gt;2013&amp;lt;/strong&amp;gt;). &amp;lt;em&amp;gt;&amp;lt;a class=&amp;quot;wiki_link_ext&amp;quot; href=&amp;quot;http://www.heise.de/ct/inhalt/2013/14/114/&amp;quot; rel=&amp;quot;nofollow&amp;quot;&amp;gt;Der Rechenkünstler&amp;lt;/a&amp;gt;&amp;lt;/em&amp;gt;. &amp;lt;a class=&amp;quot;wiki_link_ext&amp;quot; href=&amp;quot;http://www.heise.de/ct/&amp;quot; rel=&amp;quot;nofollow&amp;quot;&amp;gt;c't Magazin für Computertechnik&amp;lt;/a&amp;gt; 14/2013, p. 114-119 (German)&amp;amp;lt;/ref&amp;amp;gt; --&gt;&lt;SUP class="reference" id="cite_ref-1"&gt;&lt;A href="http://chessprogramming.wikispaces.com/BMI2#cite_note-1"&gt;&lt;U&gt;&lt;FONT color="#0066cc" size="2"&gt;[1]&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;/SUP&gt;&lt;!-- ws:end:WikiTextRefRule:15 --&gt;. BMI2 requires bit 8 set in EBX of &lt;A class="wiki_link_ext" href="http://en.wikipedia.org/wiki/CPUID" rel="nofollow"&gt;&lt;U&gt;&lt;FONT color="#0066cc"&gt;CPUID&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; with EAX=07H, ECX=0H."&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2014 09:46:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942230#M3968</guid>
      <dc:creator>bronxzv</dc:creator>
      <dc:date>2014-03-10T09:46:00Z</dc:date>
    </item>
    <item>
      <title>On first call to _may_i_use</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942231#M3969</link>
      <description>&lt;P&gt;On first call to&amp;nbsp;_may_i_use_cpu_feature() they fill&amp;nbsp;__intel_cpu_feature_indicator_x with all the flags.&lt;BR /&gt;
	This snippet shows how they set&amp;nbsp;_FEATURE_BMI 0x00080000ULL:&lt;BR /&gt;
	&lt;BR /&gt;
	000000013F874D2E &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,7 &amp;nbsp;&lt;BR /&gt;
	000000013F874D33 &amp;nbsp;xor &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ecx,ecx &amp;nbsp;&lt;BR /&gt;
	000000013F874D35 &amp;nbsp;cpuid &amp;nbsp;&lt;BR /&gt;
	000000013F874D37 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [rsp+20h],eax &amp;nbsp;&lt;BR /&gt;
	000000013F874D3B &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [rsp+24h],ebx &amp;nbsp;&lt;BR /&gt;
	...&lt;BR /&gt;
	000000013F874D5E &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ebx,dword ptr [rsp+24h] &amp;nbsp;&lt;BR /&gt;
	000000013F874D62 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,ebx &amp;nbsp;&lt;BR /&gt;
	000000013F874D64 &amp;nbsp;and &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,108h &amp;nbsp;&lt;BR /&gt;
	000000013F874D69 &amp;nbsp;lea &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rdx,[r10+80000h] &amp;nbsp;&lt;BR /&gt;
	000000013F874D70 &amp;nbsp;cmp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,108h &amp;nbsp;&lt;BR /&gt;
	000000013F874D75 &amp;nbsp;cmove &amp;nbsp; &amp;nbsp; &amp;nbsp; r10,rdx &amp;nbsp;&lt;BR /&gt;
	...&lt;BR /&gt;
	000000013F874E46 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; qword ptr [__intel_cpu_feature_indicator_x (013F88A050h)],r10 &amp;nbsp;&lt;BR /&gt;
	&lt;BR /&gt;
	So BMI means both&amp;nbsp;BMI1 and&amp;nbsp;BMI2 are set.&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12.000001907348633px; line-height: 14.400002479553223px;"&gt;&amp;gt; "Along with&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://chessprogramming.wikispaces.com/AVX2" rel="nofollow" style="font-family: Arial, Helvetica, sans-serif; font-size: 12.000001907348633px; line-height: 14.400002479553223px;"&gt;AVX2&lt;/A&gt;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12.000001907348633px; line-height: 14.400002479553223px;"&gt;, BMI2 was expected to be part of&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://chessprogramming.wikispaces.com/Intel" rel="nofollow" style="font-family: Arial, Helvetica, sans-serif; font-size: 12.000001907348633px; line-height: 14.400002479553223px;"&gt;Intel's&lt;/A&gt;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12.000001907348633px; line-height: 14.400002479553223px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="http://en.wikipedia.org/wiki/Haswell_%28microarchitecture%29" rel="nofollow" style="font-family: Arial, Helvetica, sans-serif; font-size: 12.000001907348633px; line-height: 14.400002479553223px;"&gt;Haswell&lt;/A&gt;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12.000001907348633px; line-height: 14.400002479553223px;"&gt;&amp;nbsp;architecture planned for 2013,&lt;BR /&gt;
	&amp;gt; but is not yet implemented in the first Haswell generation of mid 2013&lt;/SPAN&gt;&amp;nbsp;&lt;BR /&gt;
	&lt;BR /&gt;
	is not 100% correct -- I have this&amp;nbsp;&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12.000001907348633px; line-height: 14.400002479553223px;"&gt;mid 2013&amp;nbsp;Haswell (&lt;/SPAN&gt;Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz&lt;SPAN style="font-family: Arial, Helvetica, sans-serif; font-size: 12.000001907348633px; line-height: 14.400002479553223px;"&gt;)&amp;nbsp;&lt;/SPAN&gt;and it has BMI2.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2014 10:57:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942231#M3969</guid>
      <dc:creator>Vladimir_Sedach</dc:creator>
      <dc:date>2014-03-10T10:57:21Z</dc:date>
    </item>
    <item>
      <title>Quote:Vladimir Sedach wrote:</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942232#M3970</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Vladimir Sedach wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;On first call to&amp;nbsp;_may_i_use_cpu_feature() they fill&amp;nbsp;__intel_cpu_feature_indicator_x with all the flags.&lt;BR /&gt;
	This snippet shows how they set&amp;nbsp;_FEATURE_BMI 0x00080000ULL:&lt;/P&gt;

&lt;P&gt;000000013F874D2E &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,7 &amp;nbsp;&lt;BR /&gt;
	000000013F874D33 &amp;nbsp;xor &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ecx,ecx &amp;nbsp;&lt;BR /&gt;
	000000013F874D35 &amp;nbsp;cpuid &amp;nbsp;&lt;BR /&gt;
	000000013F874D37 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [rsp+20h],eax &amp;nbsp;&lt;BR /&gt;
	000000013F874D3B &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dword ptr [rsp+24h],ebx &amp;nbsp;&lt;BR /&gt;
	...&lt;BR /&gt;
	000000013F874D5E &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ebx,dword ptr [rsp+24h] &amp;nbsp;&lt;BR /&gt;
	000000013F874D62 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,ebx &amp;nbsp;&lt;BR /&gt;
	000000013F874D64 &amp;nbsp;and &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,108h &amp;nbsp;&lt;BR /&gt;
	000000013F874D69 &amp;nbsp;lea &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; rdx,[r10+80000h] &amp;nbsp;&lt;BR /&gt;
	000000013F874D70 &amp;nbsp;cmp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; eax,108h &amp;nbsp;&lt;BR /&gt;
	000000013F874D75 &amp;nbsp;cmove &amp;nbsp; &amp;nbsp; &amp;nbsp; r10,rdx &amp;nbsp;&lt;BR /&gt;
	...&lt;BR /&gt;
	000000013F874E46 &amp;nbsp;mov &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; qword ptr [__intel_cpu_feature_indicator_x (013F88A050h)],r10&lt;/P&gt;

&lt;P&gt;So BMI means both&amp;nbsp;BMI1 and&amp;nbsp;BMI2 are set.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Indeed since "108h" is for bit 3 (BMI1) and 8 (BMI2) set in the cpuid extended features.&lt;/P&gt;

&lt;P&gt;Thanks a lot for your deep investigation.&lt;/P&gt;

&lt;P&gt;btw I have remarked that _&lt;EM&gt;may_i_use_cpu_feature&amp;nbsp;&amp;nbsp;&lt;/EM&gt;has a more comprehensive list of flags here : &lt;A href="http://software.intel.com/sites/landingpage/IntrinsicsGuide/"&gt;http://software.intel.com/sites/landingpage/IntrinsicsGuide/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2014 11:45:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942232#M3970</guid>
      <dc:creator>bronxzv</dc:creator>
      <dc:date>2014-03-10T11:45:00Z</dc:date>
    </item>
    <item>
      <title>Quote:bronxzv wrote:</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942233#M3971</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Vladimir Sedach wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;Why not&amp;nbsp;_may_i_use_cpu_feature() in Intel's immintrin.h.&lt;BR /&gt;
	&lt;A href="http://software.intel.com/sites/products/documentation/doclib/iss/2013/compiler/cpp-lin/GUID-ABD6CC8A-7FEE-40FB-ACA0-616DD2A1FD04.htm"&gt;http://software.intel.com/sites/products/documentation/doclib/iss/2013/c...&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;I now use&amp;nbsp;&lt;EM&gt;_may_i_use_cpu_feature &lt;/EM&gt;instead of &lt;EM&gt;ippGetCpuFeatures&amp;nbsp;&lt;/EM&gt;and&amp;nbsp;inline ASM and this is a lot shorter and cleaner&lt;/P&gt;

&lt;P&gt;Though, before to use it for production code I still have a concern: I suppose that when checking for a feature such as AVX and AVX2&amp;nbsp;&lt;EM&gt;_may_i_use_cpu_feature &lt;/EM&gt;also checks for proper OS support (YMM state support), is it documented somewhere so that I can be 100 % sure ?&lt;/P&gt;

&lt;P&gt;I ask because my legacy ASM code was checking for the OSXSAVE flag (same cpuid leaf than AVX) and I was also checking the&amp;nbsp; &lt;EM&gt;ippGetCpuFeatures &lt;/EM&gt;&amp;nbsp;value &lt;EM&gt;ippAVX_ENABLEDBYOS &lt;/EM&gt;value with no equivalent in &lt;EM&gt;_may_i_use_cpu_feature&lt;/EM&gt;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Mar 2014 10:08:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942233#M3971</guid>
      <dc:creator>bronxzv</dc:creator>
      <dc:date>2014-03-12T10:08:00Z</dc:date>
    </item>
    <item>
      <title>Eric,</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942234#M3972</link>
      <description>&lt;P&gt;Eric,&lt;BR /&gt;
	I'm afraid, you wont be able to find the doc.&lt;BR /&gt;
	__cpuidex() function would allow you easily do the same as in asm.&amp;nbsp;&lt;BR /&gt;
	I did it myself (~all&amp;nbsp;&lt;EM style="font-family: Arial, Helvetica, sans-serif; font-size: 12.000001907348633px; line-height: 14.400002479553223px;"&gt;_may_i_use_cpu_feature&lt;/EM&gt; flags), if you're curious, I'd send you the code.&lt;/P&gt;</description>
      <pubDate>Wed, 12 Mar 2014 11:57:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942234#M3972</guid>
      <dc:creator>Vladimir_Sedach</dc:creator>
      <dc:date>2014-03-12T11:57:01Z</dc:date>
    </item>
    <item>
      <title>Quote:Vladimir Sedach wrote:</title>
      <link>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942235#M3973</link>
      <description>&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;Vladimir Sedach wrote:&lt;BR /&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;I'm afraid, you wont be able to find the doc.&lt;/P&gt;

&lt;P&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;

&lt;P&gt;I have found this doc.: &lt;A href="http://software.intel.com/sites/default/files/article/405250/how-to-detect-new-instruction-support-in-the-4th-generation-intel-core-processor-family.pdf"&gt;http://software.intel.com/sites/default/files/article/405250/how-to-detect-new-instruction-support-in-the-4th-generation-intel-core-processor-family.pdf&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;it includes&amp;nbsp;an alternate code path for other compilers:&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;
uint32_t fma_movbe_osxsave_mask = ((1 &amp;lt;&amp;lt; 12) | (1 &amp;lt;&amp;lt; 22) | (1 &amp;lt;&amp;lt; 27));&lt;/PRE&gt;

&lt;P&gt;confirms that OSXSAVE is checked which was my last concern&lt;/P&gt;

&lt;PRE class="brush:cpp;"&gt;
uint32_t avx2_bmi12_mask = (1 &amp;lt;&amp;lt; 5) | (1 &amp;lt;&amp;lt; 3) | (1 &amp;lt;&amp;lt; 8);&lt;/PRE&gt;

&lt;P&gt;confirms your finding that &lt;EM&gt;_FEATURE_BMI&amp;nbsp;&lt;/EM&gt;encompass BMI1 and BMI2&lt;/P&gt;</description>
      <pubDate>Wed, 12 Mar 2014 23:18:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-ISA-Extensions/ippGetCpuFeatures-for-AVX2-support/m-p/942235#M3973</guid>
      <dc:creator>bronxzv</dc:creator>
      <dc:date>2014-03-12T23:18:00Z</dc:date>
    </item>
  </channel>
</rss>

