public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [wwwdocs] Document Runtime CPU detection builtins
@ 2012-08-11  2:20 Sriraman Tallam
  2012-08-14 17:52 ` Sriraman Tallam
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Sriraman Tallam @ 2012-08-11  2:20 UTC (permalink / raw)
  To: GCC Patches; +Cc: Gerald Pfeifer, H.J. Lu

[-- Attachment #1: Type: text/plain, Size: 181 bytes --]

Hi,

   I have added a release note for x86 builtins __builtin_cpu_is and
__builtin_cpu_supports. They were checked in to trunk in rev. 186789.
Is this ok to submit?

Thanks,
-Sri.

[-- Attachment #2: changes_html_patch.txt --]
[-- Type: text/plain, Size: 3097 bytes --]

Index: changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.8/changes.html,v
retrieving revision 1.10
diff -u -u -p -r1.10 changes.html
--- changes.html	10 Aug 2012 16:25:46 -0000	1.10
+++ changes.html	11 Aug 2012 02:14:13 -0000
@@ -92,6 +92,69 @@ by this change.</p>
     wrong results.  You must build all
     modules with <code>-mpreferred-stack-boundary=3</code>, including any
     libraries.  This includes the system libraries and startup modules.</li>
+    <li> New builtin functions to detect run-time CPU type and ISA:<br>
+    <ul>
+      <li>Builtin <code>__builtin_cpu_is</code> has been added to detect if
+      the run-time CPU is of a particular type. The builtin returns a postive
+      integer on a match and zero otherwise. The builtin accepts one string
+      literal argument, the CPU name. For example,
+      <code>__builtin_cpu_is("westmere")</code> returns a postive integer if
+      the run-time CPU is an Intel Corei7 Westmere processor.  The following
+      are the CPU names recognized by <code>__builtin_cpu_is:</code>
+      <ul>
+        <li>amd</li>
+        <li>intel</li>
+        <li>atom</li>
+        <li>core2</li>
+        <li>corei7</li>
+        <li>nehalem</li>
+        <li>westmere</li>
+        <li>sandybridge</li>
+        <li>amdfam10h</li>
+        <li>barcelona</li>
+        <li>shanghai</li>
+        <li>istanbul</li>
+        <li>bdver1</li>
+        <li>bdver2</li>
+        <li>btver2</li>
+      </ul></li>
+      <li>Builtin <code>__builtin_cpu_supports</code> has been added to detect
+      if the run-time CPU supports a particular ISA feature.  The builtin
+      returns a postive integer on a match and zero otherwise. The builtin
+      accepts one string literal argument, the ISA feature.
+      For example,  <code>__builtin_cpu_supports("ssse3")</code> returns a
+      positive integer if the run-time CPU supports SSSE3 instructions. The
+      following are the ISA features recognized by
+      <code>__builtin_cpu_supports:</code>
+      <ul>
+        <li>cmov</li>
+        <li>mmx</li>
+        <li>popcnt</li>
+        <li>sse</li>
+        <li>sse2</li>
+        <li>sse3</li>
+        <li>ssse3</li>
+        <li>sse4.1</li>
+        <li>sse4.2</li>
+        <li>avx</li>
+        <li>avx2</li>
+      </ul></li>
+    </ul>
+    <p>Caveat: If the above builtins are called before any constructors are
+    invoked, like during IFUNC initialization, then the CPU detection
+    initialization must be explicity run using this newly provided
+    builtin,  <code>__builtin_cpu_init</code>.  The initialization needs to
+    be done only once.  For example, this is how the invocation would look
+    like inside an IFUNC initializer:</p>
+    <code>
+    static void (*some_ifunc_resolver(void))(void)<br>
+    {<br>
+    &nbsp&nbsp __builtin_cpu_init();<br>
+    &nbsp&nbsp if (__builtin_cpu_is("amdfam10h") ...<br>
+    &nbsp&nbsp if (__builtin_cpu_supports("popcnt") ...<br>
+    }
+    </code>
+    </li>
   </ul>
 
 <h3 id="mips">MIPS</h3>

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-12-02 20:19 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-11  2:20 [wwwdocs] Document Runtime CPU detection builtins Sriraman Tallam
2012-08-14 17:52 ` Sriraman Tallam
2012-08-14 18:02   ` Sriraman Tallam
2012-08-20 18:04     ` Sriraman Tallam
2012-08-20 18:16 ` Diego Novillo
2012-08-20 20:31 ` Gerald Pfeifer
2012-08-21  2:41   ` Sriraman Tallam
2012-08-21 12:41     ` Diego Novillo
2012-08-21 17:26       ` Sriraman Tallam
2013-12-02 20:19         ` Gerald Pfeifer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).