⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 powerpc-altivec-built-in-functions.html

📁 gcc手册
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<html lang="en">

<head>

<title>Using the GNU Compiler Collection (GCC)</title>

<meta http-equiv="Content-Type" content="text/html">

<meta name="description" content="Using the GNU Compiler Collection (GCC)">

<meta name="generator" content="makeinfo 4.3">

<link href="http://www.gnu.org/software/texinfo/" rel="generator-home">

<!--

Copyright &copy; 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,

1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.



   <p>Permission is granted to copy, distribute and/or modify this document

under the terms of the GNU Free Documentation License, Version 1.2 or

any later version published by the Free Software Foundation; with the

Invariant Sections being "GNU General Public License" and "Funding

Free Software", the Front-Cover texts being (a) (see below), and with

the Back-Cover Texts being (b) (see below).  A copy of the license is

included in the section entitled "GNU Free Documentation License".



   <p>(a) The FSF's Front-Cover Text is:



   <p>A GNU Manual



   <p>(b) The FSF's Back-Cover Text is:



   <p>You have freedom to copy and modify this GNU Manual, like GNU

     software.  Copies published by the Free Software Foundation raise

     funds for GNU development.-->

</head>

<body>

<div class="node">

<p>

Node:<a name="PowerPC%20AltiVec%20Built-in%20Functions">PowerPC AltiVec Built-in Functions</a>,

Previous:<a rel="previous" accesskey="p" href="X86-Built-in-Functions.html#X86%20Built-in%20Functions">X86 Built-in Functions</a>,

Up:<a rel="up" accesskey="u" href="Target-Builtins.html#Target%20Builtins">Target Builtins</a>

<hr><br>

</div>



<h4 class="subsection">PowerPC AltiVec Built-in Functions</h4>



   <p>These built-in functions are available for the PowerPC family

of computers, depending on the command-line switches used.



   <p>The following machine modes are available for use with AltiVec built-in

functions (see <a href="Vector-Extensions.html#Vector%20Extensions">Vector Extensions</a>): <code>V4SI</code> for a vector of four

32-bit integers, <code>V4SF</code> for a vector of four 32-bit floating point

numbers, <code>V8HI</code> for a vector of eight 16-bit integers, and

<code>V16QI</code> for a vector of sixteen 8-bit integers.



   <p>The following functions are made available by including

<code>&lt;altivec.h&gt;</code> and using <code>-maltivec</code> and

<code>-mabi=altivec</code>.  The functions implement the functionality

described in Motorola's AltiVec Programming Interface Manual.



   <p>There are a few differences from Motorola's documentation and GCC's

implementation.  Vector constants are done with curly braces (not

parentheses).  Vector initializers require no casts if the vector

constant is of the same type as the variable it is initializing.  The

<code>vector bool</code> type is deprecated and will be discontinued in

further revisions.  Use <code>vector signed</code> instead.  If <code>signed</code>

or <code>unsigned</code> is omitted, the vector type will default to

<code>signed</code>.  Lastly, all overloaded functions are implemented with macros

for the C implementation.  So code the following example will not work:



<pre class="smallexample">       vec_add ((vector signed int){1, 2, 3, 4}, foo);

     </pre>



   <p>Since vec_add is a macro, the vector constant in the above example will

be treated as four different arguments.  Wrap the entire argument in

parentheses for this to work.  The C++ implementation does not use

macros.



   <p><em>Note:</em> Only the <code>&lt;altivec.h&gt;</code> interface is supported. 

Internally, GCC uses built-in functions to achieve the functionality in

the aforementioned header file, but they are not supported and are

subject to change without notice.



<pre class="smallexample">     vector signed char vec_abs (vector signed char, vector signed char);

     vector signed short vec_abs (vector signed short, vector signed short);

     vector signed int vec_abs (vector signed int, vector signed int);

     vector signed float vec_abs (vector signed float, vector signed float);

     

     vector signed char vec_abss (vector signed char, vector signed char);

     vector signed short vec_abss (vector signed short, vector signed short);

     

     vector signed char vec_add (vector signed char, vector signed char);

     vector unsigned char vec_add (vector signed char, vector unsigned char);

     

     vector unsigned char vec_add (vector unsigned char, vector signed char);

     

     vector unsigned char vec_add (vector unsigned char,

                                   vector unsigned char);

     vector signed short vec_add (vector signed short, vector signed short);

     vector unsigned short vec_add (vector signed short,

                                    vector unsigned short);

     vector unsigned short vec_add (vector unsigned short,

                                    vector signed short);

     vector unsigned short vec_add (vector unsigned short,

                                    vector unsigned short);

     vector signed int vec_add (vector signed int, vector signed int);

     vector unsigned int vec_add (vector signed int, vector unsigned int);

     vector unsigned int vec_add (vector unsigned int, vector signed int);

     vector unsigned int vec_add (vector unsigned int, vector unsigned int);

     vector float vec_add (vector float, vector float);

     

     vector unsigned int vec_addc (vector unsigned int, vector unsigned int);

     

     vector unsigned char vec_adds (vector signed char,

                                    vector unsigned char);

     vector unsigned char vec_adds (vector unsigned char,

                                    vector signed char);

     vector unsigned char vec_adds (vector unsigned char,

                                    vector unsigned char);

     vector signed char vec_adds (vector signed char, vector signed char);

     vector unsigned short vec_adds (vector signed short,

                                     vector unsigned short);

     vector unsigned short vec_adds (vector unsigned short,

                                     vector signed short);

     vector unsigned short vec_adds (vector unsigned short,

                                     vector unsigned short);

     vector signed short vec_adds (vector signed short, vector signed short);

     

     vector unsigned int vec_adds (vector signed int, vector unsigned int);

     vector unsigned int vec_adds (vector unsigned int, vector signed int);

     vector unsigned int vec_adds (vector unsigned int, vector unsigned int);

     

     vector signed int vec_adds (vector signed int, vector signed int);

     

     vector float vec_and (vector float, vector float);

     vector float vec_and (vector float, vector signed int);

     vector float vec_and (vector signed int, vector float);

     vector signed int vec_and (vector signed int, vector signed int);

     vector unsigned int vec_and (vector signed int, vector unsigned int);

     vector unsigned int vec_and (vector unsigned int, vector signed int);

     vector unsigned int vec_and (vector unsigned int, vector unsigned int);

     vector signed short vec_and (vector signed short, vector signed short);

     vector unsigned short vec_and (vector signed short,

                                    vector unsigned short);

     vector unsigned short vec_and (vector unsigned short,

                                    vector signed short);

     vector unsigned short vec_and (vector unsigned short,

                                    vector unsigned short);

     vector signed char vec_and (vector signed char, vector signed char);

     vector unsigned char vec_and (vector signed char, vector unsigned char);

     

     vector unsigned char vec_and (vector unsigned char, vector signed char);

     

     vector unsigned char vec_and (vector unsigned char,

                                   vector unsigned char);

     

     vector float vec_andc (vector float, vector float);

     vector float vec_andc (vector float, vector signed int);

     vector float vec_andc (vector signed int, vector float);

     vector signed int vec_andc (vector signed int, vector signed int);

     vector unsigned int vec_andc (vector signed int, vector unsigned int);

     vector unsigned int vec_andc (vector unsigned int, vector signed int);

     vector unsigned int vec_andc (vector unsigned int, vector unsigned int);

     

     vector signed short vec_andc (vector signed short, vector signed short);

     

     vector unsigned short vec_andc (vector signed short,

                                     vector unsigned short);

     vector unsigned short vec_andc (vector unsigned short,

                                     vector signed short);

     vector unsigned short vec_andc (vector unsigned short,

                                     vector unsigned short);

     vector signed char vec_andc (vector signed char, vector signed char);

     vector unsigned char vec_andc (vector signed char,

                                    vector unsigned char);

     vector unsigned char vec_andc (vector unsigned char,

                                    vector signed char);

     vector unsigned char vec_andc (vector unsigned char,

                                    vector unsigned char);

     

     vector unsigned char vec_avg (vector unsigned char,

                                   vector unsigned char);

     vector signed char vec_avg (vector signed char, vector signed char);

     vector unsigned short vec_avg (vector unsigned short,

                                    vector unsigned short);

     vector signed short vec_avg (vector signed short, vector signed short);

     vector unsigned int vec_avg (vector unsigned int, vector unsigned int);

     vector signed int vec_avg (vector signed int, vector signed int);

     

     vector float vec_ceil (vector float);

     

     vector signed int vec_cmpb (vector float, vector float);

     

     vector signed char vec_cmpeq (vector signed char, vector signed char);

     vector signed char vec_cmpeq (vector unsigned char,

                                   vector unsigned char);

     vector signed short vec_cmpeq (vector signed short,

                                    vector signed short);

     vector signed short vec_cmpeq (vector unsigned short,

                                    vector unsigned short);

     vector signed int vec_cmpeq (vector signed int, vector signed int);

     vector signed int vec_cmpeq (vector unsigned int, vector unsigned int);

     vector signed int vec_cmpeq (vector float, vector float);

     

     vector signed int vec_cmpge (vector float, vector float);

     

     vector signed char vec_cmpgt (vector unsigned char,

                                   vector unsigned char);

     vector signed char vec_cmpgt (vector signed char, vector signed char);

     vector signed short vec_cmpgt (vector unsigned short,

                                    vector unsigned short);

     vector signed short vec_cmpgt (vector signed short,

                                    vector signed short);

     vector signed int vec_cmpgt (vector unsigned int, vector unsigned int);

     vector signed int vec_cmpgt (vector signed int, vector signed int);

     vector signed int vec_cmpgt (vector float, vector float);

     

     vector signed int vec_cmple (vector float, vector float);

     

     vector signed char vec_cmplt (vector unsigned char,

                                   vector unsigned char);

     vector signed char vec_cmplt (vector signed char, vector signed char);

     vector signed short vec_cmplt (vector unsigned short,

                                    vector unsigned short);

     vector signed short vec_cmplt (vector signed short,

                                    vector signed short);

     vector signed int vec_cmplt (vector unsigned int, vector unsigned int);

     vector signed int vec_cmplt (vector signed int, vector signed int);

     vector signed int vec_cmplt (vector float, vector float);

     

     vector float vec_ctf (vector unsigned int, const char);

     vector float vec_ctf (vector signed int, const char);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -