+++ /dev/null
-This is doc/gcc.info, produced by makeinfo version 4.5 from
-doc/gcc.texi.
-
-INFO-DIR-SECTION Programming
-START-INFO-DIR-ENTRY
-* gcc: (gcc). The GNU Compiler Collection.
-END-INFO-DIR-ENTRY
- This file documents the use of the GNU compilers.
-
- Published by the Free Software Foundation
-59 Temple Place - Suite 330
-Boston, MA 02111-1307 USA
-
- Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-
- Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 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".
-
- (a) The FSF's Front-Cover Text is:
-
- A GNU Manual
-
- (b) The FSF's Back-Cover Text is:
-
- 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.
-
-\1f
-File: gcc.info, Node: X86 Built-in Functions, Next: PowerPC AltiVec Built-in Functions, Up: Target Builtins
-
-X86 Built-in Functions
-----------------------
-
- These built-in functions are available for the i386 and x86-64 family
-of computers, depending on the command-line switches used.
-
- The following machine modes are available for use with MMX built-in
-functions (*note Vector Extensions::): `V2SI' for a vector of two
-32-bit integers, `V4HI' for a vector of four 16-bit integers, and
-`V8QI' for a vector of eight 8-bit integers. Some of the built-in
-functions operate on MMX registers as a whole 64-bit entity, these use
-`DI' as their mode.
-
- If 3Dnow extensions are enabled, `V2SF' is used as a mode for a
-vector of two 32-bit floating point values.
-
- If SSE extensions are enabled, `V4SF' is used for a vector of four
-32-bit floating point values. Some instructions use a vector of four
-32-bit integers, these use `V4SI'. Finally, some instructions operate
-on an entire vector register, interpreting it as a 128-bit integer,
-these use mode `TI'.
-
- The following built-in functions are made available by `-mmmx'. All
-of them generate the machine instruction that is part of the name.
-
- v8qi __builtin_ia32_paddb (v8qi, v8qi)
- v4hi __builtin_ia32_paddw (v4hi, v4hi)
- v2si __builtin_ia32_paddd (v2si, v2si)
- v8qi __builtin_ia32_psubb (v8qi, v8qi)
- v4hi __builtin_ia32_psubw (v4hi, v4hi)
- v2si __builtin_ia32_psubd (v2si, v2si)
- v8qi __builtin_ia32_paddsb (v8qi, v8qi)
- v4hi __builtin_ia32_paddsw (v4hi, v4hi)
- v8qi __builtin_ia32_psubsb (v8qi, v8qi)
- v4hi __builtin_ia32_psubsw (v4hi, v4hi)
- v8qi __builtin_ia32_paddusb (v8qi, v8qi)
- v4hi __builtin_ia32_paddusw (v4hi, v4hi)
- v8qi __builtin_ia32_psubusb (v8qi, v8qi)
- v4hi __builtin_ia32_psubusw (v4hi, v4hi)
- v4hi __builtin_ia32_pmullw (v4hi, v4hi)
- v4hi __builtin_ia32_pmulhw (v4hi, v4hi)
- di __builtin_ia32_pand (di, di)
- di __builtin_ia32_pandn (di,di)
- di __builtin_ia32_por (di, di)
- di __builtin_ia32_pxor (di, di)
- v8qi __builtin_ia32_pcmpeqb (v8qi, v8qi)
- v4hi __builtin_ia32_pcmpeqw (v4hi, v4hi)
- v2si __builtin_ia32_pcmpeqd (v2si, v2si)
- v8qi __builtin_ia32_pcmpgtb (v8qi, v8qi)
- v4hi __builtin_ia32_pcmpgtw (v4hi, v4hi)
- v2si __builtin_ia32_pcmpgtd (v2si, v2si)
- v8qi __builtin_ia32_punpckhbw (v8qi, v8qi)
- v4hi __builtin_ia32_punpckhwd (v4hi, v4hi)
- v2si __builtin_ia32_punpckhdq (v2si, v2si)
- v8qi __builtin_ia32_punpcklbw (v8qi, v8qi)
- v4hi __builtin_ia32_punpcklwd (v4hi, v4hi)
- v2si __builtin_ia32_punpckldq (v2si, v2si)
- v8qi __builtin_ia32_packsswb (v4hi, v4hi)
- v4hi __builtin_ia32_packssdw (v2si, v2si)
- v8qi __builtin_ia32_packuswb (v4hi, v4hi)
-
- The following built-in functions are made available either with
-`-msse', or with a combination of `-m3dnow' and `-march=athlon'. All
-of them generate the machine instruction that is part of the name.
-
- v4hi __builtin_ia32_pmulhuw (v4hi, v4hi)
- v8qi __builtin_ia32_pavgb (v8qi, v8qi)
- v4hi __builtin_ia32_pavgw (v4hi, v4hi)
- v4hi __builtin_ia32_psadbw (v8qi, v8qi)
- v8qi __builtin_ia32_pmaxub (v8qi, v8qi)
- v4hi __builtin_ia32_pmaxsw (v4hi, v4hi)
- v8qi __builtin_ia32_pminub (v8qi, v8qi)
- v4hi __builtin_ia32_pminsw (v4hi, v4hi)
- int __builtin_ia32_pextrw (v4hi, int)
- v4hi __builtin_ia32_pinsrw (v4hi, int, int)
- int __builtin_ia32_pmovmskb (v8qi)
- void __builtin_ia32_maskmovq (v8qi, v8qi, char *)
- void __builtin_ia32_movntq (di *, di)
- void __builtin_ia32_sfence (void)
-
- The following built-in functions are available when `-msse' is used.
-All of them generate the machine instruction that is part of the name.
-
- int __builtin_ia32_comieq (v4sf, v4sf)
- int __builtin_ia32_comineq (v4sf, v4sf)
- int __builtin_ia32_comilt (v4sf, v4sf)
- int __builtin_ia32_comile (v4sf, v4sf)
- int __builtin_ia32_comigt (v4sf, v4sf)
- int __builtin_ia32_comige (v4sf, v4sf)
- int __builtin_ia32_ucomieq (v4sf, v4sf)
- int __builtin_ia32_ucomineq (v4sf, v4sf)
- int __builtin_ia32_ucomilt (v4sf, v4sf)
- int __builtin_ia32_ucomile (v4sf, v4sf)
- int __builtin_ia32_ucomigt (v4sf, v4sf)
- int __builtin_ia32_ucomige (v4sf, v4sf)
- v4sf __builtin_ia32_addps (v4sf, v4sf)
- v4sf __builtin_ia32_subps (v4sf, v4sf)
- v4sf __builtin_ia32_mulps (v4sf, v4sf)
- v4sf __builtin_ia32_divps (v4sf, v4sf)
- v4sf __builtin_ia32_addss (v4sf, v4sf)
- v4sf __builtin_ia32_subss (v4sf, v4sf)
- v4sf __builtin_ia32_mulss (v4sf, v4sf)
- v4sf __builtin_ia32_divss (v4sf, v4sf)
- v4si __builtin_ia32_cmpeqps (v4sf, v4sf)
- v4si __builtin_ia32_cmpltps (v4sf, v4sf)
- v4si __builtin_ia32_cmpleps (v4sf, v4sf)
- v4si __builtin_ia32_cmpgtps (v4sf, v4sf)
- v4si __builtin_ia32_cmpgeps (v4sf, v4sf)
- v4si __builtin_ia32_cmpunordps (v4sf, v4sf)
- v4si __builtin_ia32_cmpneqps (v4sf, v4sf)
- v4si __builtin_ia32_cmpnltps (v4sf, v4sf)
- v4si __builtin_ia32_cmpnleps (v4sf, v4sf)
- v4si __builtin_ia32_cmpngtps (v4sf, v4sf)
- v4si __builtin_ia32_cmpngeps (v4sf, v4sf)
- v4si __builtin_ia32_cmpordps (v4sf, v4sf)
- v4si __builtin_ia32_cmpeqss (v4sf, v4sf)
- v4si __builtin_ia32_cmpltss (v4sf, v4sf)
- v4si __builtin_ia32_cmpless (v4sf, v4sf)
- v4si __builtin_ia32_cmpgtss (v4sf, v4sf)
- v4si __builtin_ia32_cmpgess (v4sf, v4sf)
- v4si __builtin_ia32_cmpunordss (v4sf, v4sf)
- v4si __builtin_ia32_cmpneqss (v4sf, v4sf)
- v4si __builtin_ia32_cmpnlts (v4sf, v4sf)
- v4si __builtin_ia32_cmpnless (v4sf, v4sf)
- v4si __builtin_ia32_cmpngtss (v4sf, v4sf)
- v4si __builtin_ia32_cmpngess (v4sf, v4sf)
- v4si __builtin_ia32_cmpordss (v4sf, v4sf)
- v4sf __builtin_ia32_maxps (v4sf, v4sf)
- v4sf __builtin_ia32_maxss (v4sf, v4sf)
- v4sf __builtin_ia32_minps (v4sf, v4sf)
- v4sf __builtin_ia32_minss (v4sf, v4sf)
- v4sf __builtin_ia32_andps (v4sf, v4sf)
- v4sf __builtin_ia32_andnps (v4sf, v4sf)
- v4sf __builtin_ia32_orps (v4sf, v4sf)
- v4sf __builtin_ia32_xorps (v4sf, v4sf)
- v4sf __builtin_ia32_movss (v4sf, v4sf)
- v4sf __builtin_ia32_movhlps (v4sf, v4sf)
- v4sf __builtin_ia32_movlhps (v4sf, v4sf)
- v4sf __builtin_ia32_unpckhps (v4sf, v4sf)
- v4sf __builtin_ia32_unpcklps (v4sf, v4sf)
- v4sf __builtin_ia32_cvtpi2ps (v4sf, v2si)
- v4sf __builtin_ia32_cvtsi2ss (v4sf, int)
- v2si __builtin_ia32_cvtps2pi (v4sf)
- int __builtin_ia32_cvtss2si (v4sf)
- v2si __builtin_ia32_cvttps2pi (v4sf)
- int __builtin_ia32_cvttss2si (v4sf)
- v4sf __builtin_ia32_rcpps (v4sf)
- v4sf __builtin_ia32_rsqrtps (v4sf)
- v4sf __builtin_ia32_sqrtps (v4sf)
- v4sf __builtin_ia32_rcpss (v4sf)
- v4sf __builtin_ia32_rsqrtss (v4sf)
- v4sf __builtin_ia32_sqrtss (v4sf)
- v4sf __builtin_ia32_shufps (v4sf, v4sf, int)
- void __builtin_ia32_movntps (float *, v4sf)
- int __builtin_ia32_movmskps (v4sf)
-
- The following built-in functions are available when `-msse' is used.
-
-`v4sf __builtin_ia32_loadaps (float *)'
- Generates the `movaps' machine instruction as a load from memory.
-
-`void __builtin_ia32_storeaps (float *, v4sf)'
- Generates the `movaps' machine instruction as a store to memory.
-
-`v4sf __builtin_ia32_loadups (float *)'
- Generates the `movups' machine instruction as a load from memory.
-
-`void __builtin_ia32_storeups (float *, v4sf)'
- Generates the `movups' machine instruction as a store to memory.
-
-`v4sf __builtin_ia32_loadsss (float *)'
- Generates the `movss' machine instruction as a load from memory.
-
-`void __builtin_ia32_storess (float *, v4sf)'
- Generates the `movss' machine instruction as a store to memory.
-
-`v4sf __builtin_ia32_loadhps (v4sf, v2si *)'
- Generates the `movhps' machine instruction as a load from memory.
-
-`v4sf __builtin_ia32_loadlps (v4sf, v2si *)'
- Generates the `movlps' machine instruction as a load from memory
-
-`void __builtin_ia32_storehps (v4sf, v2si *)'
- Generates the `movhps' machine instruction as a store to memory.
-
-`void __builtin_ia32_storelps (v4sf, v2si *)'
- Generates the `movlps' machine instruction as a store to memory.
-
- The following built-in functions are available when `-m3dnow' is
-used. All of them generate the machine instruction that is part of the
-name.
-
- void __builtin_ia32_femms (void)
- v8qi __builtin_ia32_pavgusb (v8qi, v8qi)
- v2si __builtin_ia32_pf2id (v2sf)
- v2sf __builtin_ia32_pfacc (v2sf, v2sf)
- v2sf __builtin_ia32_pfadd (v2sf, v2sf)
- v2si __builtin_ia32_pfcmpeq (v2sf, v2sf)
- v2si __builtin_ia32_pfcmpge (v2sf, v2sf)
- v2si __builtin_ia32_pfcmpgt (v2sf, v2sf)
- v2sf __builtin_ia32_pfmax (v2sf, v2sf)
- v2sf __builtin_ia32_pfmin (v2sf, v2sf)
- v2sf __builtin_ia32_pfmul (v2sf, v2sf)
- v2sf __builtin_ia32_pfrcp (v2sf)
- v2sf __builtin_ia32_pfrcpit1 (v2sf, v2sf)
- v2sf __builtin_ia32_pfrcpit2 (v2sf, v2sf)
- v2sf __builtin_ia32_pfrsqrt (v2sf)
- v2sf __builtin_ia32_pfrsqrtit1 (v2sf, v2sf)
- v2sf __builtin_ia32_pfsub (v2sf, v2sf)
- v2sf __builtin_ia32_pfsubr (v2sf, v2sf)
- v2sf __builtin_ia32_pi2fd (v2si)
- v4hi __builtin_ia32_pmulhrw (v4hi, v4hi)
-
- The following built-in functions are available when both `-m3dnow'
-and `-march=athlon' are used. All of them generate the machine
-instruction that is part of the name.
-
- v2si __builtin_ia32_pf2iw (v2sf)
- v2sf __builtin_ia32_pfnacc (v2sf, v2sf)
- v2sf __builtin_ia32_pfpnacc (v2sf, v2sf)
- v2sf __builtin_ia32_pi2fw (v2si)
- v2sf __builtin_ia32_pswapdsf (v2sf)
- v2si __builtin_ia32_pswapdsi (v2si)
-