2003-06-20 H.J. Lu * doc/extend.texi: Document new builtin functions for Intel Prescott New Intrunctions. * doc/invoke.texi: Document new command-line options, -mpni and -mno-pni, for Intel Prescott New Intrunctions. --- gcc/doc/extend.texi.pni-doc 2003-06-20 10:02:17.000000000 -0700 +++ gcc/doc/extend.texi 2003-06-20 16:44:54.000000000 -0700 @@ -5592,6 +5592,31 @@ Generates the @code{movhps} machine inst Generates the @code{movlps} machine instruction as a store to memory. @end table +The following built-in functions are available when @option{-mpni} is used. +All of them generate the machine instruction that is part of the name. + +@example +v2df __builtin_ia32_addsubpd (v2df, v2df) +v2df __builtin_ia32_addsubps (v2df, v2df) +v2df __builtin_ia32_haddpd (v2df, v2df) +v2df __builtin_ia32_haddps (v2df, v2df) +v2df __builtin_ia32_hsubpd (v2df, v2df) +v2df __builtin_ia32_hsubps (v2df, v2df) +v16qi __builtin_ia32_lddqu (char const *) +void __builtin_ia32_monitor (void *, unsigned int, unsigned int) +v2df __builtin_ia32_movddup (v2df) +v4sf __builtin_ia32_movshdup (v4sf) +v4sf __builtin_ia32_movsldup (v4sf) +void __builtin_ia32_mwait (unsigned int, unsigned int) +@end example + +The following built-in functions are available when @option{-mpni} is used. + +@table @code +@item v2df __builtin_ia32_loadddup (double const *) +Generates the @code{movddup} machine instruction as a load from memory. +@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. --- gcc/doc/invoke.texi.pni-doc 2003-06-20 10:02:18.000000000 -0700 +++ gcc/doc/invoke.texi 2003-06-20 16:16:10.000000000 -0700 @@ -487,7 +487,7 @@ in the following sections. -mno-fp-ret-in-387 -msoft-float -msvr3-shlib @gol -mno-wide-multiply -mrtd -malign-double @gol -mpreferred-stack-boundary=@var{num} @gol --mmmx -msse -msse2 -m3dnow @gol +-mmmx -msse -msse2 -mpni -m3dnow @gol -mthreads -mno-align-stringops -minline-all-stringops @gol -mpush-args -maccumulate-outgoing-args -m128bit-long-double @gol -m96bit-long-double -mregparm=@var{num} -momit-leaf-frame-pointer @gol @@ -8199,6 +8199,13 @@ code that expects temporaries to be 80bi This is the default choice for x86-64 compiler. +@item pni +Use all SSE extensions enabled by @option{-msse2} as well as the new +SSE extensions in Prescott New Intrunctions. @option{-mpni} also +enables 2 builtin functions, @code{__builtin_ia32_monitor} and +@code{__builtin_ia32_mwait}, for new intrunctions @code{monitor} and +@code{mwait}. + @item sse,387 Attempt to utilize both instruction sets at once. This effectively double the amount of available registers and on chips with separate execution units for @@ -8380,6 +8387,8 @@ preferred alignment to @option{-mpreferr @itemx -mno-sse @item -msse2 @itemx -mno-sse2 +@item -mpni +@itemx -mno-pni @item -m3dnow @itemx -mno-3dnow @opindex mmmx