Note

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

Difference between revisions of "CPU FLAGS"

From Funtoo
Jump to navigation Jump to search
 
(6 intermediate revisions by the same user not shown)
Line 2: Line 2:


==CPU_FLAGS_X86 ==
==CPU_FLAGS_X86 ==
This section lists CPU flags, also known as instruction sets, supported by Gentoo and Funtoo Linux. One notable omission in this list is the [[Wikipedia:x86-64|x86-64 instruction set]], which was developed by AMD and launched in 2003 with the first Opteron processor. All Funtoo Linux x86-64bit builds use this instruction set as a foundation. They may also use additional instructions as determined by {{c|CFLAGS}} and {{c|CPU_FLAGS_X86}} settings that are defined in the subarch profile.
{{Note|Highlighted rows indicate instruction sets that were not fully adopted by the other vendor, such as AMD instruction sets not adopted by Intel.}}


{{TableStart}}
{{TableStart}}
<tr><th>Flag</th><th>Introduced</th><th>By</th><th>Part of</th><th>Adopted in</th><th>Name</th><th>Links</th></tr>
<tr><th>Flag</th><th>Introduced</th><th>By</th><th>Part of</th><th>Adopted in</th><th>Name</th><th>Links</th></tr>
<tr><td>{{c|mmx}}</td><td>1997 (Pentium MMX)</td><td>Intel</td><td></td><td></td><td>MMX</td><td>See [[Wikipedia:MMX (instruction set)]] </td></tr>
<tr><td>{{c|mmx}}</td><td>1997 (Pentium MMX)</td><td>Intel</td><td></td><td>AMD K6</td><td>MMX</td><td>[[Wikipedia:MMX (instruction set)|Wikipedia]] </td></tr>
<tr><td>{{c|3dnow}}</td><td>1998 (AMD K6-2)</td><td>AMD</td><td></td><td></td><td>3DNow!</td><td>See [[Wikipedia:3DNow!]] </td></tr>
<tr class="bg-warning"><td>{{c|3dnow}}</td><td>1998 (AMD K6-2)</td><td>AMD</td><td></td><td></td><td>3DNow!</td><td>[[Wikipedia:3DNow!|Wikipedia]] </td></tr>
<tr><td>{{c|mmxext}}</td><td>1999</td><td>Intel</td><td>{{c|sse}}</td><td>Intel Pentium III (as part of SSE) and Athlon</td><td>AMD MMX Extensions</td><td>See [[Wikipedia:Extended MMX]]</td></tr>
<tr><td>{{c|mmxext}}</td><td>1999</td><td>Intel</td><td>{{c|sse}}</td><td>Intel Pentium III (as part of SSE) and Athlon</td><td>AMD MMX Extensions</td><td>[[Wikipedia:Extended MMX|Wikipedia]]</td></tr>
<tr><td>{{c|3dnowext}}</td><td>1999 (AMD Athlon)</td><td>AMD</td><td></td><td></td><td>3DNow! Extensions</td><td>See [[Wikipedia:3DNow!#3DNow extensions]] </td></tr>
<tr class="bg-warning"><td>{{c|3dnowext}}</td><td>1999 (AMD Athlon)</td><td>AMD</td><td></td><td></td><td>3DNow! Extensions</td><td>[[Wikipedia:3DNow!#3DNow extensions|Wikipedia]] </td></tr>
<tr><td>{{c|sse}}</td><td>1999 (Pentium III)</td><td>AMD</td><td></td><td>Athlon XP</td><td>Streaming SIMD Extensions (SSE)</td><td>See [[Wikipedia:Streaming SIMD Extensions]]</td></tr>
<tr><td>{{c|sse}}</td><td>1999 (Pentium III)</td><td>AMD</td><td></td><td>Athlon XP</td><td>Streaming SIMD Extensions (SSE)</td><td>[[Wikipedia:Streaming SIMD Extensions|Wikipedia]]</td></tr>
<tr><td>{{c|sse2}}</td><td>2001 (Pentium 4)</td><td>Intel</td><td></td><td>AMD Athlon 64/Opteron</td><td>Streaming SIMD Extensions 2 (SSE2)</td><td>See [[Wikipedia:SSE2]]</td></tr>
<tr><td>{{c|sse2}}</td><td>2001 (Pentium 4)</td><td>Intel</td><td></td><td>AMD Athlon 64/Opteron</td><td>Streaming SIMD Extensions 2 (SSE2)</td><td>[[Wikipedia:SSE2|Wikipedia]]</td></tr>
<tr><td>{{c|sse3}}</td><td>2004 (Pentium 4 Prescott)</td><td>Intel</td><td></td><td>AMD Athlon 64 (some steppings)</td><td>Streaming SIMD Extensions 3 (SSE3/PNI)</td><td>See [[Wikipedia:SSE3]]</td></tr>
<tr><td>{{c|sse3}}</td><td>2004 (Pentium 4 Prescott)</td><td>Intel</td><td></td><td>AMD Athlon 64 (some steppings)</td><td>Streaming SIMD Extensions 3 (SSE3/PNI)</td><td> [[Wikipedia:SSE3|Wikipedia]]</td></tr>
<tr><td>{{c|ssse3}}</td><td>2006 (Core 2 Woodcrest)</td><td>Intel</td><td></td><td>AMD Bobcat/Bulldozer</td><td>Supplemental Streaming SIMD Extensions 3 (SSSE3)</td><td>See [[Wikipedia:SSSE3]]</td></tr>
<tr><td>{{c|ssse3}}</td><td>2006 (Core 2 Woodcrest)</td><td>Intel</td><td></td><td>AMD Bobcat/Bulldozer</td><td>Supplemental Streaming SIMD Extensions 3 (SSSE3)</td><td>[[Wikipedia:SSSE3|Wikipedia]]</td></tr>
<tr><td>{{c|sse4_1}}</td><td>2007 (Core Penryn)</td><td>Intel</td><td></td><td>AMD Bulldozer</td><td>Supplemental Streaming SIMD Extensions 4.1</td><td>See [[Wikipedia:SSSE4#SSE4.1]]</td></tr>
<tr><td>{{c|sse4_1}}</td><td>2007 (Core Penryn)</td><td>Intel</td><td></td><td>AMD Bulldozer</td><td>Supplemental Streaming SIMD Extensions 4.1</td><td>[[Wikipedia:SSSE4#SSE4.1|Wikipedia]]</td></tr>
<tr><td>{{c|sse4a}}</td><td>late 2007 (Barcelona/Phenom)</td><td>AMD</td><td></td><td>N/A</td><td>Supplemental Streaming SIMD Extensions 4a</td><td>See [[Wikipedia:SSSE4#SSE4a]]</td></tr>
<tr class="bg-warning"><td>{{c|sse4a}}</td><td>late 2007 (Barcelona/Phenom)</td><td>AMD</td><td></td><td></td><td>Supplemental Streaming SIMD Extensions 4a</td><td>[[Wikipedia:SSSE4#SSE4a|Wikipedia]]</td></tr>
<tr><td>{{c|sse4_2}}</td><td>late 2008 (Nehalem/Core i7)</td><td>Intel</td><td></td><td>AMD Bulldozer</td><td>Supplemental Streaming SIMD Extensions 4.2</td><td>See [[Wikipedia:SSSE4#SSE4.2]]</td></tr>
<tr><td>{{c|sse4_2}}</td><td>late 2008 (Nehalem/Core i7)</td><td>Intel</td><td></td><td>AMD Bulldozer</td><td>Supplemental Streaming SIMD Extensions 4.2</td><td>[[Wikipedia:SSSE4#SSE4.2|Wikipedia]]</td></tr>
<tr><td>{{c|popcnt}}</td><td>2007</td><td>AMD</td><td></td><td>Intel Nehalem</td><td>POPCNT</td><td>See [[Wikipedia:SSE4#POPCNT_and_LZCNT]]</td></tr>
<tr><td>{{c|popcnt}}</td><td>2007</td><td>AMD</td><td></td><td>Intel Nehalem</td><td>POPCNT</td><td>[[Wikipedia:SSE4#POPCNT_and_LZCNT|Wikipedia]]</td></tr>
<tr><td>{{c|lzcnt}}</td><td>2007</td><td>AMD</td><td></td><td>Intel Haswell</td><td>LZCNT</td><td>See [[Wikipedia:SSE4#POPCNT_and_LZCNT]]</td></tr>
<tr><td>{{c|lzcnt}}</td><td>2007</td><td>AMD</td><td></td><td>Intel Haswell</td><td>LZCNT</td><td> [[Wikipedia:SSE4#POPCNT_and_LZCNT|Wikipedia]]</td></tr>
<tr><td>{{c|aes}}</td><td>2008</td><td>Intel</td><td></td><td>AMD Bulldozer</td><td>AES instruction set</td><td>See [[Wikipedia:AES instruction set]]</td></tr>
<tr><td>{{c|aes}}</td><td>2008</td><td>Intel</td><td></td><td>AMD Bulldozer</td><td>AES instruction set</td><td>[[Wikipedia:AES instruction set|Wikipedia]]</td></tr>
<tr><td>{{c|xop}}</td><td>2011 (Bulldozer)</td><td>AMD</td><td></td><td></td><td>XOP Instruction set</td><td>See [[Wikipedia:XOP instruction set]]</td></tr>
<tr class="bg-warning"><td>{{c|xop}}</td><td>2011 (Bulldozer)</td><td>AMD</td><td></td><td></td><td>XOP Instruction set</td><td>[[Wikipedia:XOP instruction set|Wikipedia]]</td></tr>
<tr><td>{{c|avx}}</td><td>2011 (Sandy Bridge)</td><td>Intel</td><td></td><td>AMD Bulldozer</td><td>Advanced Vector Extensions</td><td>See [[Wikipedia:Advanced Vector Extensions]]</td></tr>
<tr><td>{{c|avx}}</td><td>2011 (Sandy Bridge)</td><td>Intel</td><td></td><td>AMD Bulldozer</td><td>Advanced Vector Extensions</td><td>[[Wikipedia:Advanced Vector Extensions|Wikipedia]]</td></tr>
<tr><td>{{c|fma4}}</td><td>2011 (Bulldozer)</td><td>AMD</td><td></td><td>N/A</td><td>4-operand fused multiply-add (a × b + c)</td><td>See [[Wikipedia:FMA instruction set]]</td></tr>
<tr class="bg-warning"><td>{{c|fma4}}</td><td>2011 (Bulldozer)</td><td>AMD</td><td></td><td></td><td>4-operand fused multiply-add (a × b + c)</td><td>[[Wikipedia:FMA instruction set|Wikipedia]]</td></tr>
<tr><td>{{c|fma3}}</td><td>2012 (Piledriver)</td><td>AMD</td><td></td><td>Intel Haswell</td><td>3-operand fused multiply-add (a × b + c)</td><td>See [[Wikipedia:FMA instruction set]]</td></tr>
<tr><td>{{c|fma3}}</td><td>2012 (Piledriver)</td><td>AMD</td><td></td><td>Intel Haswell</td><td>3-operand fused multiply-add (a × b + c)</td><td>[[Wikipedia:FMA instruction set|Wikipedia]]</td></tr>
{{TableEnd}}
{{TableEnd}}

Latest revision as of 01:27, March 28, 2015

This page lists processor instruction sets that can be enabled on Funtoo Linux systems using the CPU_FLAGS_* variables.

CPU_FLAGS_X86

This section lists CPU flags, also known as instruction sets, supported by Gentoo and Funtoo Linux. One notable omission in this list is the x86-64 instruction set, which was developed by AMD and launched in 2003 with the first Opteron processor. All Funtoo Linux x86-64bit builds use this instruction set as a foundation. They may also use additional instructions as determined by CFLAGS and CPU_FLAGS_X86 settings that are defined in the subarch profile.

   Note

Highlighted rows indicate instruction sets that were not fully adopted by the other vendor, such as AMD instruction sets not adopted by Intel.

FlagIntroducedByPart ofAdopted inNameLinks
mmx1997 (Pentium MMX)IntelAMD K6MMXWikipedia
3dnow1998 (AMD K6-2)AMD3DNow!Wikipedia
mmxext1999IntelsseIntel Pentium III (as part of SSE) and AthlonAMD MMX ExtensionsWikipedia
3dnowext1999 (AMD Athlon)AMD3DNow! ExtensionsWikipedia
sse1999 (Pentium III)AMDAthlon XPStreaming SIMD Extensions (SSE)Wikipedia
sse22001 (Pentium 4)IntelAMD Athlon 64/OpteronStreaming SIMD Extensions 2 (SSE2)Wikipedia
sse32004 (Pentium 4 Prescott)IntelAMD Athlon 64 (some steppings)Streaming SIMD Extensions 3 (SSE3/PNI) Wikipedia
ssse32006 (Core 2 Woodcrest)IntelAMD Bobcat/BulldozerSupplemental Streaming SIMD Extensions 3 (SSSE3)Wikipedia
sse4_12007 (Core Penryn)IntelAMD BulldozerSupplemental Streaming SIMD Extensions 4.1Wikipedia
sse4alate 2007 (Barcelona/Phenom)AMDSupplemental Streaming SIMD Extensions 4aWikipedia
sse4_2late 2008 (Nehalem/Core i7)IntelAMD BulldozerSupplemental Streaming SIMD Extensions 4.2Wikipedia
popcnt2007AMDIntel NehalemPOPCNTWikipedia
lzcnt2007AMDIntel HaswellLZCNT Wikipedia
aes2008IntelAMD BulldozerAES instruction setWikipedia
xop2011 (Bulldozer)AMDXOP Instruction setWikipedia
avx2011 (Sandy Bridge)IntelAMD BulldozerAdvanced Vector ExtensionsWikipedia
fma42011 (Bulldozer)AMD4-operand fused multiply-add (a × b + c)Wikipedia
fma32012 (Piledriver)AMDIntel Haswell3-operand fused multiply-add (a × b + c)Wikipedia