* doc/invoke.texi: Update i386 built-in function lists.
From-SVN: r48806
This commit is contained in:
parent
9d5608608c
commit
7cbe9bb710
@ -1,3 +1,7 @@
|
||||
2002-01-12 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* doc/invoke.texi: Update i386 built-in function lists.
|
||||
|
||||
Sat Jan 12 17:38:11 CET 2002 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
|
||||
|
@ -7744,298 +7744,150 @@ integers, these use @code{V4SI}. Finally, some instructions operate on an
|
||||
entire vector register, interpreting it as a 128 bit integer, these use mode
|
||||
@code{TI}.
|
||||
|
||||
The following built-in functions are made available by @option{-mmmx}:
|
||||
@table @code
|
||||
@item v8qi __builtin_ia32_paddb (v8qi, v8qi)
|
||||
Generates the @code{paddb} machine instruction.
|
||||
@item v4hi __builtin_ia32_paddw (v4hi, v4hi)
|
||||
Generates the @code{paddw} machine instruction.
|
||||
@item v2si __builtin_ia32_paddd (v2si, v2si)
|
||||
Generates the @code{paddd} machine instruction.
|
||||
@item v8qi __builtin_ia32_psubb (v8qi, v8qi)
|
||||
Generates the @code{psubb} machine instruction.
|
||||
@item v4hi __builtin_ia32_psubw (v4hi, v4hi)
|
||||
Generates the @code{psubw} machine instruction.
|
||||
@item v2si __builtin_ia32_psubd (v2si, v2si)
|
||||
Generates the @code{psubd} machine instruction.
|
||||
The following built-in functions are made available by @option{-mmmx}.
|
||||
All of them generate the machine instruction that is part of the name.
|
||||
|
||||
@item v8qi __builtin_ia32_paddsb (v8qi, v8qi)
|
||||
Generates the @code{paddsb} machine instruction.
|
||||
@item v4hi __builtin_ia32_paddsw (v4hi, v4hi)
|
||||
Generates the @code{paddsw} machine instruction.
|
||||
@item v8qi __builtin_ia32_psubsb (v8qi, v8qi)
|
||||
Generates the @code{psubsb} machine instruction.
|
||||
@item v4hi __builtin_ia32_psubsw (v4hi, v4hi)
|
||||
Generates the @code{psubsw} machine instruction.
|
||||
@example
|
||||
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)
|
||||
@end example
|
||||
|
||||
@item v8qi __builtin_ia32_paddusb (v8qi, v8qi)
|
||||
Generates the @code{paddusb} machine instruction.
|
||||
@item v4hi __builtin_ia32_paddusw (v4hi, v4hi)
|
||||
Generates the @code{paddusw} machine instruction.
|
||||
@item v8qi __builtin_ia32_psubusb (v8qi, v8qi)
|
||||
Generates the @code{psubusb} machine instruction.
|
||||
@item v4hi __builtin_ia32_psubusw (v4hi, v4hi)
|
||||
Generates the @code{psubusw} machine instruction.
|
||||
The following built-in functions are made available either with
|
||||
@option{-msse}, or with a combination of @option{-m3dnow} and
|
||||
@option{-march=athlon}. All of them generate the machine
|
||||
instruction that is part of the name.
|
||||
|
||||
@item v4hi __builtin_ia32_pmullw (v4hi, v4hi)
|
||||
Generates the @code{pmullw} machine instruction.
|
||||
@item v4hi __builtin_ia32_pmulhw (v4hi, v4hi)
|
||||
Generates the @code{pmulhw} machine instruction.
|
||||
@example
|
||||
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)
|
||||
@end example
|
||||
|
||||
@item di __builtin_ia32_pand (di, di)
|
||||
Generates the @code{pand} machine instruction.
|
||||
@item di __builtin_ia32_pandn (di,di)
|
||||
Generates the @code{pandn} machine instruction.
|
||||
@item di __builtin_ia32_por (di, di)
|
||||
Generates the @code{por} machine instruction.
|
||||
@item di __builtin_ia32_pxor (di, di)
|
||||
Generates the @code{pxor} machine instruction.
|
||||
The following built-in functions are available when @option{-msse} is used.
|
||||
All of them generate the machine instruction that is part of the name.
|
||||
|
||||
@item v8qi __builtin_ia32_pcmpeqb (v8qi, v8qi)
|
||||
Generates the @code{pcmpeqb} machine instruction.
|
||||
@item v4hi __builtin_ia32_pcmpeqw (v4hi, v4hi)
|
||||
Generates the @code{pcmpeqw} machine instruction.
|
||||
@item v2si __builtin_ia32_pcmpeqd (v2si, v2si)
|
||||
Generates the @code{pcmpeqd} machine instruction.
|
||||
@item v8qi __builtin_ia32_pcmpgtb (v8qi, v8qi)
|
||||
Generates the @code{pcmpgtb} machine instruction.
|
||||
@item v4hi __builtin_ia32_pcmpgtw (v4hi, v4hi)
|
||||
Generates the @code{pcmpgtw} machine instruction.
|
||||
@item v2si __builtin_ia32_pcmpgtd (v2si, v2si)
|
||||
Generates the @code{pcmpgtd} machine instruction.
|
||||
|
||||
@item v8qi __builtin_ia32_punpckhbw (v8qi, v8qi)
|
||||
Generates the @code{punpckhbw} machine instruction.
|
||||
@item v4hi __builtin_ia32_punpckhwd (v4hi, v4hi)
|
||||
Generates the @code{punpckhwd} machine instruction.
|
||||
@item v2si __builtin_ia32_punpckhdq (v2si, v2si)
|
||||
Generates the @code{punpckhdq} machine instruction.
|
||||
@item v8qi __builtin_ia32_punpcklbw (v8qi, v8qi)
|
||||
Generates the @code{punpcklbw} machine instruction.
|
||||
@item v4hi __builtin_ia32_punpcklwd (v4hi, v4hi)
|
||||
Generates the @code{punpcklwd} machine instruction.
|
||||
@item v2si __builtin_ia32_punpckldq (v2si, v2si)
|
||||
Generates the @code{punpckldq} machine instruction.
|
||||
|
||||
@item v8qi __builtin_ia32_packsswb (v4hi, v4hi)
|
||||
Generates the @code{packsswb} machine instruction.
|
||||
@item v4hi __builtin_ia32_packssdw (v2si, v2si)
|
||||
Generates the @code{packssdw} machine instruction.
|
||||
@item v8qi __builtin_ia32_packuswb (v4hi, v4hi)
|
||||
Generates the @code{packuswb} machine instruction.
|
||||
|
||||
@end table
|
||||
|
||||
The following built-in functions are made available either with @option{-msse}, or
|
||||
with a combination of @option{-m3dnow} and @option{-march=athlon}.
|
||||
@table @code
|
||||
|
||||
@item v4hi __builtin_ia32_pmulhuw (v4hi, v4hi)
|
||||
Generates the @code{pmulhuw} machine instruction.
|
||||
|
||||
@item v8qi __builtin_ia32_pavgb (v8qi, v8qi)
|
||||
Generates the @code{pavgb} machine instruction.
|
||||
@item v4hi __builtin_ia32_pavgw (v4hi, v4hi)
|
||||
Generates the @code{pavgw} machine instruction.
|
||||
@item v4hi __builtin_ia32_psadbw (v8qi, v8qi)
|
||||
Generates the @code{psadbw} machine instruction.
|
||||
|
||||
@item v8qi __builtin_ia32_pmaxub (v8qi, v8qi)
|
||||
Generates the @code{pmaxub} machine instruction.
|
||||
@item v4hi __builtin_ia32_pmaxsw (v4hi, v4hi)
|
||||
Generates the @code{pmaxsw} machine instruction.
|
||||
@item v8qi __builtin_ia32_pminub (v8qi, v8qi)
|
||||
Generates the @code{pminub} machine instruction.
|
||||
@item v4hi __builtin_ia32_pminsw (v4hi, v4hi)
|
||||
Generates the @code{pminsw} machine instruction.
|
||||
|
||||
@item int __builtin_ia32_pextrw (v4hi, int)
|
||||
Generates the @code{pextrw} machine instruction.
|
||||
@item v4hi __builtin_ia32_pinsrw (v4hi, int, int)
|
||||
Generates the @code{pinsrw} machine instruction.
|
||||
|
||||
@item int __builtin_ia32_pmovmskb (v8qi)
|
||||
Generates the @code{pmovmskb} machine instruction.
|
||||
@item void __builtin_ia32_maskmovq (v8qi, v8qi, char *)
|
||||
Generates the @code{maskmovq} machine instruction.
|
||||
@item void __builtin_ia32_movntq (di *, di)
|
||||
Generates the @code{movntq} machine instruction.
|
||||
@item void __builtin_ia32_sfence (void)
|
||||
Generates the @code{sfence} machine instruction.
|
||||
@item void __builtin_ia32_prefetch (char *, int selector)
|
||||
Generates a prefetch machine instruction, depending on the value of
|
||||
selector. If @code{selector} is 0, it generates @code{prefetchnta}; for
|
||||
a value of 1, it generates @code{prefetcht0}; for a value of 2, it generates
|
||||
@code{prefetcht1}; and for a value of 3 it generates @code{prefetcht2}.
|
||||
|
||||
@end table
|
||||
@example
|
||||
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)
|
||||
@end example
|
||||
|
||||
The following built-in functions are available when @option{-msse} is used.
|
||||
|
||||
@table @code
|
||||
@item int __builtin_ia32_comieq (v4sf, v4sf)
|
||||
Generates the @code{comiss} machine instruction and performs an equality
|
||||
comparison. The return value is the truth value of that comparison.
|
||||
@item int __builtin_ia32_comineq (v4sf, v4sf)
|
||||
Generates the @code{comiss} machine instruction and performs an inequality
|
||||
comparison. The return value is the truth value of that comparison.
|
||||
@item int __builtin_ia32_comilt (v4sf, v4sf)
|
||||
Generates the @code{comiss} machine instruction and performs a ``less than''
|
||||
comparison. The return value is the truth value of that comparison.
|
||||
@item int __builtin_ia32_comile (v4sf, v4sf)
|
||||
Generates the @code{comiss} machine instruction and performs a ``less or
|
||||
equal'' comparison. The return value is the truth value of that comparison.
|
||||
@item int __builtin_ia32_comigt (v4sf, v4sf)
|
||||
Generates the @code{comiss} machine instruction and performs a ``greater than''
|
||||
comparison. The return value is the truth value of that comparison.
|
||||
@item int __builtin_ia32_comige (v4sf, v4sf)
|
||||
Generates the @code{comiss} machine instruction and performs a ``greater or
|
||||
equal'' comparison. The return value is the truth value of that comparison.
|
||||
|
||||
@item int __builtin_ia32_ucomieq (v4sf, v4sf)
|
||||
Generates the @code{ucomiss} machine instruction and performs an equality
|
||||
comparison. The return value is the truth value of that comparison.
|
||||
@item int __builtin_ia32_ucomineq (v4sf, v4sf)
|
||||
Generates the @code{ucomiss} machine instruction and performs an inequality
|
||||
comparison. The return value is the truth value of that comparison.
|
||||
@item int __builtin_ia32_ucomilt (v4sf, v4sf)
|
||||
Generates the @code{ucomiss} machine instruction and performs a ``less than''
|
||||
comparison. The return value is the truth value of that comparison.
|
||||
@item int __builtin_ia32_ucomile (v4sf, v4sf)
|
||||
Generates the @code{ucomiss} machine instruction and performs a ``less or
|
||||
equal'' comparison. The return value is the truth value of that comparison.
|
||||
@item int __builtin_ia32_ucomigt (v4sf, v4sf)
|
||||
Generates the @code{ucomiss} machine instruction and performs a ``greater than''
|
||||
comparison. The return value is the truth value of that comparison.
|
||||
@item int __builtin_ia32_ucomige (v4sf, v4sf)
|
||||
Generates the @code{ucomiss} machine instruction and performs a ``greater or
|
||||
equal'' comparison. The return value is the truth value of that comparison.
|
||||
|
||||
@item v4sf __builtin_ia32_addps (v4sf, v4sf)
|
||||
Generates the @code{addps} machine instruction.
|
||||
@item v4sf __builtin_ia32_addss (v4sf, v4sf)
|
||||
Generates the @code{addss} machine instruction.
|
||||
@item v4sf __builtin_ia32_subps (v4sf, v4sf)
|
||||
Generates the @code{subps} machine instruction.
|
||||
@item v4sf __builtin_ia32_subss (v4sf, v4sf)
|
||||
Generates the @code{subss} machine instruction.
|
||||
@item v4sf __builtin_ia32_mulps (v4sf, v4sf)
|
||||
Generates the @code{mulps} machine instruction.
|
||||
@item v4sf __builtin_ia32_mulss (v4sf, v4sf)
|
||||
Generates the @code{mulss} machine instruction.
|
||||
@item v4sf __builtin_ia32_divps (v4sf, v4sf)
|
||||
Generates the @code{divps} machine instruction.
|
||||
@item v4sf __builtin_ia32_divss (v4sf, v4sf)
|
||||
Generates the @code{divss} machine instruction.
|
||||
|
||||
@item v4si __builtin_ia32_cmpeqps (v4sf, v4sf)
|
||||
Generates the @code{cmpeqps} machine instruction.
|
||||
@item v4si __builtin_ia32_cmplts (v4sf, v4sf)
|
||||
Generates the @code{cmpltps} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpleps (v4sf, v4sf)
|
||||
Generates the @code{cmpleps} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpgtps (v4sf, v4sf)
|
||||
Generates the @code{cmpgtps} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpgeps (v4sf, v4sf)
|
||||
Generates the @code{cmpgeps} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpunordps (v4sf, v4sf)
|
||||
Generates the @code{cmpunodps} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpneqps (v4sf, v4sf)
|
||||
Generates the @code{cmpeqps} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpnltps (v4sf, v4sf)
|
||||
Generates the @code{cmpltps} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpnleps (v4sf, v4sf)
|
||||
Generates the @code{cmpleps} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpngtps (v4sf, v4sf)
|
||||
Generates the @code{cmpgtps} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpngeps (v4sf, v4sf)
|
||||
Generates the @code{cmpgeps} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpordps (v4sf, v4sf)
|
||||
Generates the @code{cmpunodps} machine instruction.
|
||||
|
||||
@item v4si __builtin_ia32_cmpeqss (v4sf, v4sf)
|
||||
Generates the @code{cmpeqss} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpltss (v4sf, v4sf)
|
||||
Generates the @code{cmpltss} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpless (v4sf, v4sf)
|
||||
Generates the @code{cmpless} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpgtss (v4sf, v4sf)
|
||||
Generates the @code{cmpgtss} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpgess (v4sf, v4sf)
|
||||
Generates the @code{cmpgess} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpunordss (v4sf, v4sf)
|
||||
Generates the @code{cmpunodss} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpneqss (v4sf, v4sf)
|
||||
Generates the @code{cmpeqss} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpnlts (v4sf, v4sf)
|
||||
Generates the @code{cmpltss} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpnless (v4sf, v4sf)
|
||||
Generates the @code{cmpless} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpngtss (v4sf, v4sf)
|
||||
Generates the @code{cmpgtss} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpngess (v4sf, v4sf)
|
||||
Generates the @code{cmpgess} machine instruction.
|
||||
@item v4si __builtin_ia32_cmpordss (v4sf, v4sf)
|
||||
Generates the @code{cmpunodss} machine instruction.
|
||||
|
||||
@item v4sf __builtin_ia32_maxps (v4sf, v4sf)
|
||||
Generates the @code{maxps} machine instruction.
|
||||
@item v4sf __builtin_ia32_maxsss (v4sf, v4sf)
|
||||
Generates the @code{maxss} machine instruction.
|
||||
@item v4sf __builtin_ia32_minps (v4sf, v4sf)
|
||||
Generates the @code{minps} machine instruction.
|
||||
@item v4sf __builtin_ia32_minsss (v4sf, v4sf)
|
||||
Generates the @code{minss} machine instruction.
|
||||
|
||||
@item ti __builtin_ia32_andps (ti, ti)
|
||||
Generates the @code{andps} machine instruction.
|
||||
@item ti __builtin_ia32_andnps (ti, ti)
|
||||
Generates the @code{andnps} machine instruction.
|
||||
@item ti __builtin_ia32_orps (ti, ti)
|
||||
Generates the @code{orps} machine instruction.
|
||||
@item ti __builtin_ia32_xorps (ti, ti)
|
||||
Generates the @code{xorps} machine instruction.
|
||||
|
||||
@item v4sf __builtin_ia32_movps (v4sf, v4sf)
|
||||
Generates the @code{movps} machine instruction.
|
||||
@item v4sf __builtin_ia32_movhlps (v4sf, v4sf)
|
||||
Generates the @code{movhlps} machine instruction.
|
||||
@item v4sf __builtin_ia32_movlhps (v4sf, v4sf)
|
||||
Generates the @code{movlhps} machine instruction.
|
||||
@item v4sf __builtin_ia32_unpckhps (v4sf, v4sf)
|
||||
Generates the @code{unpckhps} machine instruction.
|
||||
@item v4sf __builtin_ia32_unpcklps (v4sf, v4sf)
|
||||
Generates the @code{unpcklps} machine instruction.
|
||||
|
||||
@item v4sf __builtin_ia32_cvtpi2ps (v4sf, v2si)
|
||||
Generates the @code{cvtpi2ps} machine instruction.
|
||||
@item v2si __builtin_ia32_cvtps2pi (v4sf)
|
||||
Generates the @code{cvtps2pi} machine instruction.
|
||||
@item v4sf __builtin_ia32_cvtsi2ss (v4sf, int)
|
||||
Generates the @code{cvtsi2ss} machine instruction.
|
||||
@item int __builtin_ia32_cvtss2si (v4sf)
|
||||
Generates the @code{cvtsi2ss} machine instruction.
|
||||
@item v2si __builtin_ia32_cvttps2pi (v4sf)
|
||||
Generates the @code{cvttps2pi} machine instruction.
|
||||
@item int __builtin_ia32_cvttss2si (v4sf)
|
||||
Generates the @code{cvttsi2ss} machine instruction.
|
||||
|
||||
@item v4sf __builtin_ia32_rcpps (v4sf)
|
||||
Generates the @code{rcpps} machine instruction.
|
||||
@item v4sf __builtin_ia32_rsqrtps (v4sf)
|
||||
Generates the @code{rsqrtps} machine instruction.
|
||||
@item v4sf __builtin_ia32_sqrtps (v4sf)
|
||||
Generates the @code{sqrtps} machine instruction.
|
||||
@item v4sf __builtin_ia32_rcpss (v4sf)
|
||||
Generates the @code{rcpss} machine instruction.
|
||||
@item v4sf __builtin_ia32_rsqrtss (v4sf)
|
||||
Generates the @code{rsqrtss} machine instruction.
|
||||
@item v4sf __builtin_ia32_sqrtss (v4sf)
|
||||
Generates the @code{sqrtss} machine instruction.
|
||||
|
||||
@item v4sf __builtin_ia32_shufps (v4sf, v4sf, int)
|
||||
Generates the @code{shufps} machine instruction.
|
||||
|
||||
@item v4sf __builtin_ia32_loadaps (float *)
|
||||
Generates the @code{movaps} machine instruction as a load from memory.
|
||||
@item void __builtin_ia32_storeaps (float *, v4sf)
|
||||
@ -8048,7 +7900,6 @@ Generates the @code{movups} machine instruction as a store to memory.
|
||||
Generates the @code{movss} machine instruction as a load from memory.
|
||||
@item void __builtin_ia32_storess (float *, v4sf)
|
||||
Generates the @code{movss} machine instruction as a store to memory.
|
||||
|
||||
@item v4sf __builtin_ia32_loadhps (v4sf, v2si *)
|
||||
Generates the @code{movhps} machine instruction as a load from memory.
|
||||
@item v4sf __builtin_ia32_loadlps (v4sf, v2si *)
|
||||
@ -8057,40 +7908,47 @@ Generates the @code{movlps} machine instruction as a load from memory
|
||||
Generates the @code{movhps} machine instruction as a store to memory.
|
||||
@item void __builtin_ia32_storelps (v4sf, v2si *)
|
||||
Generates the @code{movlps} machine instruction as a store to memory.
|
||||
|
||||
@item void __builtin_ia32_movntps (float *, v4sf)
|
||||
Generates the @code{movntps} machine instruction.
|
||||
@item int __builtin_ia32_movmskps (v4sf)
|
||||
Generates the @code{movntps} machine instruction.
|
||||
|
||||
@item void __builtin_ia32_storeps1 (float *, v4sf)
|
||||
Generates the @code{movaps} machine instruction as a store to memory.
|
||||
Before storing, the value is modified with a @code{shufps} instruction
|
||||
so that the lowest of the four floating point elements is replicated
|
||||
across the entire vector that is stored.
|
||||
@item void __builtin_ia32_storerps (float *, v4sf)
|
||||
Generates the @code{movaps} machine instruction as a store to memory.
|
||||
Before storing, the value is modified with a @code{shufps} instruction
|
||||
so that the order of the four floating point elements in the vector is
|
||||
reversed.
|
||||
@item v4sf __builtin_ia32_loadps1 (float *)
|
||||
Generates a @code{movss} machine instruction to load a floating point
|
||||
value from memory, and a @code{shufps} instruction to replicate the
|
||||
loaded value across all four elements of the result vector.
|
||||
@item v4sf __builtin_ia32_loadrps (float *)
|
||||
Generates a @code{movaps} machine instruction to load a vector from
|
||||
memory, and a @code{shufps} instruction to reverse the order of the
|
||||
four floating point elements in the result vector.
|
||||
@item v4sf __builtin_ia32_setps (float, float, float, float)
|
||||
Constructs a vector from four single floating point values. The return
|
||||
value is equal to the value that would result from storing the four
|
||||
arguments into consecutive memory locations and then executing a
|
||||
@code{movaps} to load the vector from memory.
|
||||
@item v4sf __builtin_ia32_setps1 (float)
|
||||
Constructs a vector from a single floating point value by replicating
|
||||
it across all four elements of the result vector.
|
||||
@end table
|
||||
|
||||
The following built-in functions are available when @option{-m3dnow} is used.
|
||||
All of them generate the machine instruction that is part of the name.
|
||||
|
||||
@example
|
||||
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)
|
||||
@end example
|
||||
|
||||
The following built-in functions are available when both @option{-m3dnow}
|
||||
and @option{-march=athlon} are used. All of them generate the machine
|
||||
instruction that is part of the name.
|
||||
|
||||
@example
|
||||
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)
|
||||
@end example
|
||||
|
||||
@item -mpush-args
|
||||
@itemx -mno-push-args
|
||||
@opindex mpush-args
|
||||
|
Loading…
Reference in New Issue
Block a user