This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH RFA: Correct documentation for ARM builtin functions


The documentation for the ARM builtin functions is wrong.  There are
mysterious duplications.  All vector types are listed as v2si.  There
are other errors.

This patch fixes the documentation to match the code in arm.c.  I
didn't triple-check it, but it's probably right, and it's certainly
better than what is there right now.

Ian


2004-03-19  Ian Lance Taylor  <ian@wasabisystems.com>

	* doc/extend.texi (ARM Built-in Functions): Replace with correct
	declarations.


Index: extend.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/extend.texi,v
retrieving revision 1.188
diff -p -r1.188 extend.texi
*** extend.texi	16 Mar 2004 20:37:23 -0000	1.188
--- extend.texi	19 Mar 2004 22:11:44 -0000
*************** These built-in functions are available f
*** 5637,5791 ****
  processors, when the @option{-mcpu=iwmmxt} switch is used:
  
  @smallexample
! typedef int __v2si __attribute__ ((__mode__ (__V2SI__)))
  
  v2si __builtin_arm_waddw (v2si, v2si)
- v2si __builtin_arm_waddw (v2si, v2si)
- v2si __builtin_arm_wsubw (v2si, v2si)
- v2si __builtin_arm_wsubw (v2si, v2si)
  v2si __builtin_arm_waddwss (v2si, v2si)
- v2si __builtin_arm_wsubwss (v2si, v2si)
- v2si __builtin_arm_wsubwss (v2si, v2si)
- v2si __builtin_arm_wsubwss (v2si, v2si)
- v2si __builtin_arm_wsubwss (v2si, v2si)
  v2si __builtin_arm_waddwus (v2si, v2si)
! v2si __builtin_arm_wsubwus (v2si, v2si)
! v2si __builtin_arm_wsubwus (v2si, v2si)
! v2si __builtin_arm_wmaxuw (v2si, v2si)
! v2si __builtin_arm_wmaxsw (v2si, v2si)
! v2si __builtin_arm_wavg2br (v2si, v2si)
! v2si __builtin_arm_wavg2hr (v2si, v2si)
! v2si __builtin_arm_wavg2b (v2si, v2si)
! v2si __builtin_arm_wavg2h (v2si, v2si)
! v2si __builtin_arm_waccb (v2si)
! v2si __builtin_arm_wacch (v2si)
! v2si __builtin_arm_waccw (v2si)
! v2si __builtin_arm_wmacs (v2si, v2si, v2si)
! v2si __builtin_arm_wmacsz (v2si, v2si, v2si)
! v2si __builtin_arm_wmacu (v2si, v2si, v2si)
! v2si __builtin_arm_wmacuz (v2si, v2si)
! v2si __builtin_arm_wsadb (v2si, v2si)
! v2si __builtin_arm_wsadbz (v2si, v2si)
! v2si __builtin_arm_wsadh (v2si, v2si)
! v2si __builtin_arm_wsadhz (v2si, v2si)
! v2si __builtin_arm_walign (v2si, v2si)
! v2si __builtin_arm_tmia (v2si, int, int)
! v2si __builtin_arm_tmiaph (v2si, int, int)
! v2si __builtin_arm_tmiabb (v2si, int, int)
! v2si __builtin_arm_tmiabt (v2si, int, int)
! v2si __builtin_arm_tmiatb (v2si, int, int)
! v2si __builtin_arm_tmiatt (v2si, int, int)
! int  __builtin_arm_tmovmskb (v2si)
! int  __builtin_arm_tmovmskh (v2si)
! int  __builtin_arm_tmovmskw (v2si)
! v2si __builtin_arm_wmadds (v2si, v2si)
! v2si __builtin_arm_wmaddu (v2si, v2si)
! v2si __builtin_arm_wpackhss (v2si, v2si)
! v2si __builtin_arm_wpackwss (v2si, v2si)
! v2si __builtin_arm_wpackdss (v2si, v2si)
! v2si __builtin_arm_wpackhus (v2si, v2si)
! v2si __builtin_arm_wpackwus (v2si, v2si)
! v2si __builtin_arm_wpackdus (v2si, v2si)
! v2si __builtin_arm_waddb (v2si, v2si)
! v2si __builtin_arm_waddh (v2si, v2si)
! v2si __builtin_arm_waddw (v2si, v2si)
! v2si __builtin_arm_waddbss (v2si, v2si)
! v2si __builtin_arm_waddhss (v2si, v2si)
! v2si __builtin_arm_waddwss (v2si, v2si)
! v2si __builtin_arm_waddbus (v2si, v2si)
! v2si __builtin_arm_waddhus (v2si, v2si)
! v2si __builtin_arm_waddwus (v2si, v2si)
! v2si __builtin_arm_wsubb (v2si, v2si)
! v2si __builtin_arm_wsubh (v2si, v2si)
! v2si __builtin_arm_wsubw (v2si, v2si)
! v2si __builtin_arm_wsubbss (v2si, v2si)
! v2si __builtin_arm_wsubhss (v2si, v2si)
! v2si __builtin_arm_wsubwss (v2si, v2si)
! v2si __builtin_arm_wsubbus (v2si, v2si)
! v2si __builtin_arm_wsubhus (v2si, v2si)
! v2si __builtin_arm_wsubwus (v2si, v2si)
! v2si __builtin_arm_wand (v2si, v2si)
! v2si __builtin_arm_wandn (v2si, v2si)
! v2si __builtin_arm_wor (v2si, v2si)
! v2si __builtin_arm_wxor (v2si, v2si)
! v2si __builtin_arm_wcmpeqb (v2si, v2si)
! v2si __builtin_arm_wcmpeqh (v2si, v2si)
  v2si __builtin_arm_wcmpeqw (v2si, v2si)
! v2si __builtin_arm_wcmpgtub (v2si, v2si)
! v2si __builtin_arm_wcmpgtuh (v2si, v2si)
! v2si __builtin_arm_wcmpgtuw (v2si, v2si)
! v2si __builtin_arm_wcmpgtsb (v2si, v2si)
! v2si __builtin_arm_wcmpgtsh (v2si, v2si)
  v2si __builtin_arm_wcmpgtsw (v2si, v2si)
! int  __builtin_arm_textrmsb (v2si, int)
! int  __builtin_arm_textrmsh (v2si, int)
! int  __builtin_arm_textrmsw (v2si, int)
! int  __builtin_arm_textrmub (v2si, int)
! int  __builtin_arm_textrmuh (v2si, int)
! int  __builtin_arm_textrmuw (v2si, int)
! v2si __builtin_arm_tinsrb (v2si, int, int)
! v2si __builtin_arm_tinsrh (v2si, int, int)
! v2si __builtin_arm_tinsrw (v2si, int, int)
  v2si __builtin_arm_wmaxsw (v2si, v2si)
! v2si __builtin_arm_wmaxsh (v2si, v2si)
! v2si __builtin_arm_wmaxsb (v2si, v2si)
  v2si __builtin_arm_wmaxuw (v2si, v2si)
! v2si __builtin_arm_wmaxuh (v2si, v2si)
! v2si __builtin_arm_wmaxub (v2si, v2si)
  v2si __builtin_arm_wminsw (v2si, v2si)
! v2si __builtin_arm_wminsh (v2si, v2si)
! v2si __builtin_arm_wminsb (v2si, v2si)
  v2si __builtin_arm_wminuw (v2si, v2si)
! v2si __builtin_arm_wminuh (v2si, v2si)
! v2si __builtin_arm_wminub (v2si, v2si)
! v2si __builtin_arm_wmuluh (v2si, v2si)
! v2si __builtin_arm_wmulsh (v2si, v2si)
! v2si __builtin_arm_wmulul (v2si, v2si)
! v2si __builtin_arm_wshufh (v2si, int)
! v2si __builtin_arm_wsllh (v2si, v2si)
! v2si __builtin_arm_wsllw (v2si, v2si)
! v2si __builtin_arm_wslld (v2si, v2si)
! v2si __builtin_arm_wsrah (v2si, v2si)
! v2si __builtin_arm_wsraw (v2si, v2si)
! v2si __builtin_arm_wsrad (v2si, v2si)
! v2si __builtin_arm_wsrlh (v2si, v2si)
! v2si __builtin_arm_wsrlw (v2si, v2si)
! v2si __builtin_arm_wsrld (v2si, v2si)
! v2si __builtin_arm_wrorh (v2si, v2si)
! v2si __builtin_arm_wrorw (v2si, v2si)
! v2si __builtin_arm_wrord (v2si, v2si)
! v2si __builtin_arm_wsllhi (v2si, int)
  v2si __builtin_arm_wsllwi (v2si, int)
! v2si __builtin_arm_wslldi (v2si, v2si)
! v2si __builtin_arm_wsrahi (v2si, int)
  v2si __builtin_arm_wsrawi (v2si, int)
! v2si __builtin_arm_wsradi (v2si, v2si)
  v2si __builtin_arm_wsrlwi (v2si, int)
! v2si __builtin_arm_wsrldi (v2si, int)
! v2si __builtin_arm_wrorhi (v2si, int)
! v2si __builtin_arm_wrorwi (v2si, int)
! v2si __builtin_arm_wrordi (v2si, int)
! v2si __builtin_arm_wunpckihb (v2si, v2si)
! v2si __builtin_arm_wunpckihh (v2si, v2si)
  v2si __builtin_arm_wunpckihw (v2si, v2si)
! v2si __builtin_arm_wunpckilb (v2si, v2si)
! v2si __builtin_arm_wunpckilh (v2si, v2si)
  v2si __builtin_arm_wunpckilw (v2si, v2si)
! v2si __builtin_arm_wunpckehsb (v2si)
! v2si __builtin_arm_wunpckehsh (v2si)
! v2si __builtin_arm_wunpckehsw (v2si)
! v2si __builtin_arm_wunpckehub (v2si)
! v2si __builtin_arm_wunpckehuh (v2si)
! v2si __builtin_arm_wunpckehuw (v2si)
! v2si __builtin_arm_wunpckelsb (v2si)
! v2si __builtin_arm_wunpckelsh (v2si)
! v2si __builtin_arm_wunpckelsw (v2si)
! v2si __builtin_arm_wunpckelub (v2si)
! v2si __builtin_arm_wunpckeluh (v2si)
! v2si __builtin_arm_wunpckeluw (v2si)
! v2si __builtin_arm_wsubwss (v2si, v2si)
! v2si __builtin_arm_wsraw (v2si, v2si)
! v2si __builtin_arm_wsrad (v2si, v2si)
  @end smallexample
  
  @node X86 Built-in Functions
--- 5637,5780 ----
  processors, when the @option{-mcpu=iwmmxt} switch is used:
  
  @smallexample
! typedef int v2si __attribute__ ((vector_size (8)));
! typedef short v4hi __attribute__ ((vector_size (8)));
! typedef char v8qi __attribute__ ((vector_size (8)));
  
+ int __builtin_arm_getwcx (int)
+ void __builtin_arm_setwcx (int, int)
+ int __builtin_arm_textrmsb (v8qi, int)
+ int __builtin_arm_textrmsh (v4hi, int)
+ int __builtin_arm_textrmsw (v2si, int)
+ int __builtin_arm_textrmub (v8qi, int)
+ int __builtin_arm_textrmuh (v4hi, int)
+ int __builtin_arm_textrmuw (v2si, int)
+ v8qi __builtin_arm_tinsrb (v8qi, int)
+ v4hi __builtin_arm_tinsrh (v4hi, int)
+ v2si __builtin_arm_tinsrw (v2si, int)
+ long long __builtin_arm_tmia (long long, int, int)
+ long long __builtin_arm_tmiabb (long long, int, int)
+ long long __builtin_arm_tmiabt (long long, int, int)
+ long long __builtin_arm_tmiaph (long long, int, int)
+ long long __builtin_arm_tmiatb (long long, int, int)
+ long long __builtin_arm_tmiatt (long long, int, int)
+ int __builtin_arm_tmovmskb (v8qi)
+ int __builtin_arm_tmovmskh (v4hi)
+ int __builtin_arm_tmovmskw (v2si)
+ long long __builtin_arm_waccb (v8qi)
+ long long __builtin_arm_wacch (v4hi)
+ long long __builtin_arm_waccw (v2si)
+ v8qi __builtin_arm_waddb (v8qi, v8qi)
+ v8qi __builtin_arm_waddbss (v8qi, v8qi)
+ v8qi __builtin_arm_waddbus (v8qi, v8qi)
+ v4hi __builtin_arm_waddh (v4hi, v4hi)
+ v4hi __builtin_arm_waddhss (v4hi, v4hi)
+ v4hi __builtin_arm_waddhus (v4hi, v4hi)
  v2si __builtin_arm_waddw (v2si, v2si)
  v2si __builtin_arm_waddwss (v2si, v2si)
  v2si __builtin_arm_waddwus (v2si, v2si)
! v8qi __builtin_arm_walign (v8qi, v8qi, int)
! long long __builtin_arm_wand(long long, long long)
! long long __builtin_arm_wandn (long long, long long)
! v8qi __builtin_arm_wavg2b (v8qi, v8qi)
! v8qi __builtin_arm_wavg2br (v8qi, v8qi)
! v4hi __builtin_arm_wavg2h (v4hi, v4hi)
! v4hi __builtin_arm_wavg2hr (v4hi, v4hi)
! v8qi __builtin_arm_wcmpeqb (v8qi, v8qi)
! v4hi __builtin_arm_wcmpeqh (v4hi, v4hi)
  v2si __builtin_arm_wcmpeqw (v2si, v2si)
! v8qi __builtin_arm_wcmpgtsb (v8qi, v8qi)
! v4hi __builtin_arm_wcmpgtsh (v4hi, v4hi)
  v2si __builtin_arm_wcmpgtsw (v2si, v2si)
! v8qi __builtin_arm_wcmpgtub (v8qi, v8qi)
! v4hi __builtin_arm_wcmpgtuh (v4hi, v4hi)
! v2si __builtin_arm_wcmpgtuw (v2si, v2si)
! long long __builtin_arm_wmacs (long long, v4hi, v4hi)
! long long __builtin_arm_wmacsz (v4hi, v4hi)
! long long __builtin_arm_wmacu (long long, v4hi, v4hi)
! long long __builtin_arm_wmacuz (v4hi, v4hi)
! v4hi __builtin_arm_wmadds (v4hi, v4hi)
! v4hi __builtin_arm_wmaddu (v4hi, v4hi)
! v8qi __builtin_arm_wmaxsb (v8qi, v8qi)
! v4hi __builtin_arm_wmaxsh (v4hi, v4hi)
  v2si __builtin_arm_wmaxsw (v2si, v2si)
! v8qi __builtin_arm_wmaxub (v8qi, v8qi)
! v4hi __builtin_arm_wmaxuh (v4hi, v4hi)
  v2si __builtin_arm_wmaxuw (v2si, v2si)
! v8qi __builtin_arm_wminsb (v8qi, v8qi)
! v4hi __builtin_arm_wminsh (v4hi, v4hi)
  v2si __builtin_arm_wminsw (v2si, v2si)
! v8qi __builtin_arm_wminub (v8qi, v8qi)
! v4hi __builtin_arm_wminuh (v4hi, v4hi)
  v2si __builtin_arm_wminuw (v2si, v2si)
! v4hi __builtin_arm_wmulsm (v4hi, v4hi)
! v4hi __builtin_arm_wmulul (v4hi, v4hi)
! v4hi __builtin_arm_wmulum (v4hi, v4hi)
! long long __builtin_arm_wor (long long, long long)
! v2si __builtin_arm_wpackdss (long long, long long)
! v2si __builtin_arm_wpackdus (long long, long long)
! v8qi __builtin_arm_wpackhss (v4hi, v4hi)
! v8qi __builtin_arm_wpackhus (v4hi, v4hi)
! v4hi __builtin_arm_wpackwss (v2si, v2si)
! v4hi __builtin_arm_wpackwus (v2si, v2si)
! long long __builtin_arm_wrord (long long, long long)
! long long __builtin_arm_wrordi (long long, int)
! v4hi __builtin_arm_wrorh (v4hi, long long)
! v4hi __builtin_arm_wrorhi (v4hi, int)
! v2si __builtin_arm_wrorw (v2si, long long)
! v2si __builtin_arm_wrorwi (v2si, int)
! v2si __builtin_arm_wsadb (v8qi, v8qi)
! v2si __builtin_arm_wsadbz (v8qi, v8qi)
! v2si __builtin_arm_wsadh (v4hi, v4hi)
! v2si __builtin_arm_wsadhz (v4hi, v4hi)
! v4hi __builtin_arm_wshufh (v4hi, int)
! long long __builtin_arm_wslld (long long, long long)
! long long __builtin_arm_wslldi (long long, int)
! v4hi __builtin_arm_wsllh (v4hi, long long)
! v4hi __builtin_arm_wsllhi (v4hi, int)
! v2si __builtin_arm_wsllw (v2si, long long)
  v2si __builtin_arm_wsllwi (v2si, int)
! long long __builtin_arm_wsrad (long long, long long)
! long long __builtin_arm_wsradi (long long, int)
! v4hi __builtin_arm_wsrah (v4hi, long long)
! v4hi __builtin_arm_wsrahi (v4hi, int)
! v2si __builtin_arm_wsraw (v2si, long long)
  v2si __builtin_arm_wsrawi (v2si, int)
! long long __builtin_arm_wsrld (long long, long long)
! long long __builtin_arm_wsrldi (long long, int)
! v4hi __builtin_arm_wsrlh (v4hi, long long)
! v4hi __builtin_arm_wsrlhi (v4hi, int)
! v2si __builtin_arm_wsrlw (v2si, long long)
  v2si __builtin_arm_wsrlwi (v2si, int)
! v8qi __builtin_arm_wsubb (v8qi, v8qi)
! v8qi __builtin_arm_wsubbss (v8qi, v8qi)
! v8qi __builtin_arm_wsubbus (v8qi, v8qi)
! v4hi __builtin_arm_wsubh (v4hi, v4hi)
! v4hi __builtin_arm_wsubhss (v4hi, v4hi)
! v4hi __builtin_arm_wsubhus (v4hi, v4hi)
! v2si __builtin_arm_wsubw (v2si, v2si)
! v2si __builtin_arm_wsubwss (v2si, v2si)
! v2si __builtin_arm_wsubwus (v2si, v2si)
! v4hi __builtin_arm_wunpckehsb (v8qi)
! v2si __builtin_arm_wunpckehsh (v4hi)
! long long __builtin_arm_wunpckehsw (v2si)
! v4hi __builtin_arm_wunpckehub (v8qi)
! v2si __builtin_arm_wunpckehuh (v4hi)
! long long __builtin_arm_wunpckehuw (v2si)
! v4hi __builtin_arm_wunpckelsb (v8qi)
! v2si __builtin_arm_wunpckelsh (v4hi)
! long long __builtin_arm_wunpckelsw (v2si)
! v4hi __builtin_arm_wunpckelub (v8qi)
! v2si __builtin_arm_wunpckeluh (v4hi)
! long long __builtin_arm_wunpckeluw (v2si)
! v8qi __builtin_arm_wunpckihb (v8qi, v8qi)
! v4hi __builtin_arm_wunpckihh (v4hi, v4hi)
  v2si __builtin_arm_wunpckihw (v2si, v2si)
! v8qi __builtin_arm_wunpckilb (v8qi, v8qi)
! v4hi __builtin_arm_wunpckilh (v4hi, v4hi)
  v2si __builtin_arm_wunpckilw (v2si, v2si)
! long long __builtin_arm_wxor (long long, long long)
! long long __builtin_arm_wzero ()
  @end smallexample
  
  @node X86 Built-in Functions


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]