Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

802 lines
28KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Copyright (C) 1988-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Funding Free Software", the Front-Cover
  8. Texts being (a) (see below), and with the Back-Cover Texts being (b)
  9. (see below). A copy of the license is included in the section entitled
  10. "GNU Free Documentation License".
  11. (a) The FSF's Front-Cover Text is:
  12. A GNU Manual
  13. (b) The FSF's Back-Cover Text is:
  14. You have freedom to copy and modify this GNU Manual, like GNU
  15. software. Copies published by the Free Software Foundation raise
  16. funds for GNU development. -->
  17. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <title>MIPS SIMD Architecture Built-in Functions (Using the GNU Compiler Collection (GCC))</title>
  21. <meta name="description" content="MIPS SIMD Architecture Built-in Functions (Using the GNU Compiler Collection (GCC))">
  22. <meta name="keywords" content="MIPS SIMD Architecture Built-in Functions (Using the GNU Compiler Collection (GCC))">
  23. <meta name="resource-type" content="document">
  24. <meta name="distribution" content="global">
  25. <meta name="Generator" content="makeinfo">
  26. <link href="index.html#Top" rel="start" title="Top">
  27. <link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
  28. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  29. <link href="MIPS-SIMD-Architecture-_0028MSA_0029-Support.html#MIPS-SIMD-Architecture-_0028MSA_0029-Support" rel="up" title="MIPS SIMD Architecture (MSA) Support">
  30. <link href="Other-MIPS-Built_002din-Functions.html#Other-MIPS-Built_002din-Functions" rel="next" title="Other MIPS Built-in Functions">
  31. <link href="MIPS-SIMD-Architecture-_0028MSA_0029-Support.html#MIPS-SIMD-Architecture-_0028MSA_0029-Support" rel="prev" title="MIPS SIMD Architecture (MSA) Support">
  32. <style type="text/css">
  33. <!--
  34. a.summary-letter {text-decoration: none}
  35. blockquote.indentedblock {margin-right: 0em}
  36. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  37. blockquote.smallquotation {font-size: smaller}
  38. div.display {margin-left: 3.2em}
  39. div.example {margin-left: 3.2em}
  40. div.lisp {margin-left: 3.2em}
  41. div.smalldisplay {margin-left: 3.2em}
  42. div.smallexample {margin-left: 3.2em}
  43. div.smalllisp {margin-left: 3.2em}
  44. kbd {font-style: oblique}
  45. pre.display {font-family: inherit}
  46. pre.format {font-family: inherit}
  47. pre.menu-comment {font-family: serif}
  48. pre.menu-preformatted {font-family: serif}
  49. pre.smalldisplay {font-family: inherit; font-size: smaller}
  50. pre.smallexample {font-size: smaller}
  51. pre.smallformat {font-family: inherit; font-size: smaller}
  52. pre.smalllisp {font-size: smaller}
  53. span.nolinebreak {white-space: nowrap}
  54. span.roman {font-family: initial; font-weight: normal}
  55. span.sansserif {font-family: sans-serif; font-weight: normal}
  56. ul.no-bullet {list-style: none}
  57. -->
  58. </style>
  59. </head>
  60. <body lang="en">
  61. <a name="MIPS-SIMD-Architecture-Built_002din-Functions"></a>
  62. <div class="header">
  63. <p>
  64. Up: <a href="MIPS-SIMD-Architecture-_0028MSA_0029-Support.html#MIPS-SIMD-Architecture-_0028MSA_0029-Support" accesskey="u" rel="up">MIPS SIMD Architecture (MSA) Support</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  65. </div>
  66. <hr>
  67. <a name="MIPS-SIMD-Architecture-Built_002din-Functions-1"></a>
  68. <h4 class="subsubsection">6.60.17.1 MIPS SIMD Architecture Built-in Functions</h4>
  69. <p>The intrinsics provided are listed below; each is named after the
  70. machine instruction.
  71. </p>
  72. <div class="smallexample">
  73. <pre class="smallexample">v16i8 __builtin_msa_add_a_b (v16i8, v16i8);
  74. v8i16 __builtin_msa_add_a_h (v8i16, v8i16);
  75. v4i32 __builtin_msa_add_a_w (v4i32, v4i32);
  76. v2i64 __builtin_msa_add_a_d (v2i64, v2i64);
  77. v16i8 __builtin_msa_adds_a_b (v16i8, v16i8);
  78. v8i16 __builtin_msa_adds_a_h (v8i16, v8i16);
  79. v4i32 __builtin_msa_adds_a_w (v4i32, v4i32);
  80. v2i64 __builtin_msa_adds_a_d (v2i64, v2i64);
  81. v16i8 __builtin_msa_adds_s_b (v16i8, v16i8);
  82. v8i16 __builtin_msa_adds_s_h (v8i16, v8i16);
  83. v4i32 __builtin_msa_adds_s_w (v4i32, v4i32);
  84. v2i64 __builtin_msa_adds_s_d (v2i64, v2i64);
  85. v16u8 __builtin_msa_adds_u_b (v16u8, v16u8);
  86. v8u16 __builtin_msa_adds_u_h (v8u16, v8u16);
  87. v4u32 __builtin_msa_adds_u_w (v4u32, v4u32);
  88. v2u64 __builtin_msa_adds_u_d (v2u64, v2u64);
  89. v16i8 __builtin_msa_addv_b (v16i8, v16i8);
  90. v8i16 __builtin_msa_addv_h (v8i16, v8i16);
  91. v4i32 __builtin_msa_addv_w (v4i32, v4i32);
  92. v2i64 __builtin_msa_addv_d (v2i64, v2i64);
  93. v16i8 __builtin_msa_addvi_b (v16i8, imm0_31);
  94. v8i16 __builtin_msa_addvi_h (v8i16, imm0_31);
  95. v4i32 __builtin_msa_addvi_w (v4i32, imm0_31);
  96. v2i64 __builtin_msa_addvi_d (v2i64, imm0_31);
  97. v16u8 __builtin_msa_and_v (v16u8, v16u8);
  98. v16u8 __builtin_msa_andi_b (v16u8, imm0_255);
  99. v16i8 __builtin_msa_asub_s_b (v16i8, v16i8);
  100. v8i16 __builtin_msa_asub_s_h (v8i16, v8i16);
  101. v4i32 __builtin_msa_asub_s_w (v4i32, v4i32);
  102. v2i64 __builtin_msa_asub_s_d (v2i64, v2i64);
  103. v16u8 __builtin_msa_asub_u_b (v16u8, v16u8);
  104. v8u16 __builtin_msa_asub_u_h (v8u16, v8u16);
  105. v4u32 __builtin_msa_asub_u_w (v4u32, v4u32);
  106. v2u64 __builtin_msa_asub_u_d (v2u64, v2u64);
  107. v16i8 __builtin_msa_ave_s_b (v16i8, v16i8);
  108. v8i16 __builtin_msa_ave_s_h (v8i16, v8i16);
  109. v4i32 __builtin_msa_ave_s_w (v4i32, v4i32);
  110. v2i64 __builtin_msa_ave_s_d (v2i64, v2i64);
  111. v16u8 __builtin_msa_ave_u_b (v16u8, v16u8);
  112. v8u16 __builtin_msa_ave_u_h (v8u16, v8u16);
  113. v4u32 __builtin_msa_ave_u_w (v4u32, v4u32);
  114. v2u64 __builtin_msa_ave_u_d (v2u64, v2u64);
  115. v16i8 __builtin_msa_aver_s_b (v16i8, v16i8);
  116. v8i16 __builtin_msa_aver_s_h (v8i16, v8i16);
  117. v4i32 __builtin_msa_aver_s_w (v4i32, v4i32);
  118. v2i64 __builtin_msa_aver_s_d (v2i64, v2i64);
  119. v16u8 __builtin_msa_aver_u_b (v16u8, v16u8);
  120. v8u16 __builtin_msa_aver_u_h (v8u16, v8u16);
  121. v4u32 __builtin_msa_aver_u_w (v4u32, v4u32);
  122. v2u64 __builtin_msa_aver_u_d (v2u64, v2u64);
  123. v16u8 __builtin_msa_bclr_b (v16u8, v16u8);
  124. v8u16 __builtin_msa_bclr_h (v8u16, v8u16);
  125. v4u32 __builtin_msa_bclr_w (v4u32, v4u32);
  126. v2u64 __builtin_msa_bclr_d (v2u64, v2u64);
  127. v16u8 __builtin_msa_bclri_b (v16u8, imm0_7);
  128. v8u16 __builtin_msa_bclri_h (v8u16, imm0_15);
  129. v4u32 __builtin_msa_bclri_w (v4u32, imm0_31);
  130. v2u64 __builtin_msa_bclri_d (v2u64, imm0_63);
  131. v16u8 __builtin_msa_binsl_b (v16u8, v16u8, v16u8);
  132. v8u16 __builtin_msa_binsl_h (v8u16, v8u16, v8u16);
  133. v4u32 __builtin_msa_binsl_w (v4u32, v4u32, v4u32);
  134. v2u64 __builtin_msa_binsl_d (v2u64, v2u64, v2u64);
  135. v16u8 __builtin_msa_binsli_b (v16u8, v16u8, imm0_7);
  136. v8u16 __builtin_msa_binsli_h (v8u16, v8u16, imm0_15);
  137. v4u32 __builtin_msa_binsli_w (v4u32, v4u32, imm0_31);
  138. v2u64 __builtin_msa_binsli_d (v2u64, v2u64, imm0_63);
  139. v16u8 __builtin_msa_binsr_b (v16u8, v16u8, v16u8);
  140. v8u16 __builtin_msa_binsr_h (v8u16, v8u16, v8u16);
  141. v4u32 __builtin_msa_binsr_w (v4u32, v4u32, v4u32);
  142. v2u64 __builtin_msa_binsr_d (v2u64, v2u64, v2u64);
  143. v16u8 __builtin_msa_binsri_b (v16u8, v16u8, imm0_7);
  144. v8u16 __builtin_msa_binsri_h (v8u16, v8u16, imm0_15);
  145. v4u32 __builtin_msa_binsri_w (v4u32, v4u32, imm0_31);
  146. v2u64 __builtin_msa_binsri_d (v2u64, v2u64, imm0_63);
  147. v16u8 __builtin_msa_bmnz_v (v16u8, v16u8, v16u8);
  148. v16u8 __builtin_msa_bmnzi_b (v16u8, v16u8, imm0_255);
  149. v16u8 __builtin_msa_bmz_v (v16u8, v16u8, v16u8);
  150. v16u8 __builtin_msa_bmzi_b (v16u8, v16u8, imm0_255);
  151. v16u8 __builtin_msa_bneg_b (v16u8, v16u8);
  152. v8u16 __builtin_msa_bneg_h (v8u16, v8u16);
  153. v4u32 __builtin_msa_bneg_w (v4u32, v4u32);
  154. v2u64 __builtin_msa_bneg_d (v2u64, v2u64);
  155. v16u8 __builtin_msa_bnegi_b (v16u8, imm0_7);
  156. v8u16 __builtin_msa_bnegi_h (v8u16, imm0_15);
  157. v4u32 __builtin_msa_bnegi_w (v4u32, imm0_31);
  158. v2u64 __builtin_msa_bnegi_d (v2u64, imm0_63);
  159. i32 __builtin_msa_bnz_b (v16u8);
  160. i32 __builtin_msa_bnz_h (v8u16);
  161. i32 __builtin_msa_bnz_w (v4u32);
  162. i32 __builtin_msa_bnz_d (v2u64);
  163. i32 __builtin_msa_bnz_v (v16u8);
  164. v16u8 __builtin_msa_bsel_v (v16u8, v16u8, v16u8);
  165. v16u8 __builtin_msa_bseli_b (v16u8, v16u8, imm0_255);
  166. v16u8 __builtin_msa_bset_b (v16u8, v16u8);
  167. v8u16 __builtin_msa_bset_h (v8u16, v8u16);
  168. v4u32 __builtin_msa_bset_w (v4u32, v4u32);
  169. v2u64 __builtin_msa_bset_d (v2u64, v2u64);
  170. v16u8 __builtin_msa_bseti_b (v16u8, imm0_7);
  171. v8u16 __builtin_msa_bseti_h (v8u16, imm0_15);
  172. v4u32 __builtin_msa_bseti_w (v4u32, imm0_31);
  173. v2u64 __builtin_msa_bseti_d (v2u64, imm0_63);
  174. i32 __builtin_msa_bz_b (v16u8);
  175. i32 __builtin_msa_bz_h (v8u16);
  176. i32 __builtin_msa_bz_w (v4u32);
  177. i32 __builtin_msa_bz_d (v2u64);
  178. i32 __builtin_msa_bz_v (v16u8);
  179. v16i8 __builtin_msa_ceq_b (v16i8, v16i8);
  180. v8i16 __builtin_msa_ceq_h (v8i16, v8i16);
  181. v4i32 __builtin_msa_ceq_w (v4i32, v4i32);
  182. v2i64 __builtin_msa_ceq_d (v2i64, v2i64);
  183. v16i8 __builtin_msa_ceqi_b (v16i8, imm_n16_15);
  184. v8i16 __builtin_msa_ceqi_h (v8i16, imm_n16_15);
  185. v4i32 __builtin_msa_ceqi_w (v4i32, imm_n16_15);
  186. v2i64 __builtin_msa_ceqi_d (v2i64, imm_n16_15);
  187. i32 __builtin_msa_cfcmsa (imm0_31);
  188. v16i8 __builtin_msa_cle_s_b (v16i8, v16i8);
  189. v8i16 __builtin_msa_cle_s_h (v8i16, v8i16);
  190. v4i32 __builtin_msa_cle_s_w (v4i32, v4i32);
  191. v2i64 __builtin_msa_cle_s_d (v2i64, v2i64);
  192. v16i8 __builtin_msa_cle_u_b (v16u8, v16u8);
  193. v8i16 __builtin_msa_cle_u_h (v8u16, v8u16);
  194. v4i32 __builtin_msa_cle_u_w (v4u32, v4u32);
  195. v2i64 __builtin_msa_cle_u_d (v2u64, v2u64);
  196. v16i8 __builtin_msa_clei_s_b (v16i8, imm_n16_15);
  197. v8i16 __builtin_msa_clei_s_h (v8i16, imm_n16_15);
  198. v4i32 __builtin_msa_clei_s_w (v4i32, imm_n16_15);
  199. v2i64 __builtin_msa_clei_s_d (v2i64, imm_n16_15);
  200. v16i8 __builtin_msa_clei_u_b (v16u8, imm0_31);
  201. v8i16 __builtin_msa_clei_u_h (v8u16, imm0_31);
  202. v4i32 __builtin_msa_clei_u_w (v4u32, imm0_31);
  203. v2i64 __builtin_msa_clei_u_d (v2u64, imm0_31);
  204. v16i8 __builtin_msa_clt_s_b (v16i8, v16i8);
  205. v8i16 __builtin_msa_clt_s_h (v8i16, v8i16);
  206. v4i32 __builtin_msa_clt_s_w (v4i32, v4i32);
  207. v2i64 __builtin_msa_clt_s_d (v2i64, v2i64);
  208. v16i8 __builtin_msa_clt_u_b (v16u8, v16u8);
  209. v8i16 __builtin_msa_clt_u_h (v8u16, v8u16);
  210. v4i32 __builtin_msa_clt_u_w (v4u32, v4u32);
  211. v2i64 __builtin_msa_clt_u_d (v2u64, v2u64);
  212. v16i8 __builtin_msa_clti_s_b (v16i8, imm_n16_15);
  213. v8i16 __builtin_msa_clti_s_h (v8i16, imm_n16_15);
  214. v4i32 __builtin_msa_clti_s_w (v4i32, imm_n16_15);
  215. v2i64 __builtin_msa_clti_s_d (v2i64, imm_n16_15);
  216. v16i8 __builtin_msa_clti_u_b (v16u8, imm0_31);
  217. v8i16 __builtin_msa_clti_u_h (v8u16, imm0_31);
  218. v4i32 __builtin_msa_clti_u_w (v4u32, imm0_31);
  219. v2i64 __builtin_msa_clti_u_d (v2u64, imm0_31);
  220. i32 __builtin_msa_copy_s_b (v16i8, imm0_15);
  221. i32 __builtin_msa_copy_s_h (v8i16, imm0_7);
  222. i32 __builtin_msa_copy_s_w (v4i32, imm0_3);
  223. i64 __builtin_msa_copy_s_d (v2i64, imm0_1);
  224. u32 __builtin_msa_copy_u_b (v16i8, imm0_15);
  225. u32 __builtin_msa_copy_u_h (v8i16, imm0_7);
  226. u32 __builtin_msa_copy_u_w (v4i32, imm0_3);
  227. u64 __builtin_msa_copy_u_d (v2i64, imm0_1);
  228. void __builtin_msa_ctcmsa (imm0_31, i32);
  229. v16i8 __builtin_msa_div_s_b (v16i8, v16i8);
  230. v8i16 __builtin_msa_div_s_h (v8i16, v8i16);
  231. v4i32 __builtin_msa_div_s_w (v4i32, v4i32);
  232. v2i64 __builtin_msa_div_s_d (v2i64, v2i64);
  233. v16u8 __builtin_msa_div_u_b (v16u8, v16u8);
  234. v8u16 __builtin_msa_div_u_h (v8u16, v8u16);
  235. v4u32 __builtin_msa_div_u_w (v4u32, v4u32);
  236. v2u64 __builtin_msa_div_u_d (v2u64, v2u64);
  237. v8i16 __builtin_msa_dotp_s_h (v16i8, v16i8);
  238. v4i32 __builtin_msa_dotp_s_w (v8i16, v8i16);
  239. v2i64 __builtin_msa_dotp_s_d (v4i32, v4i32);
  240. v8u16 __builtin_msa_dotp_u_h (v16u8, v16u8);
  241. v4u32 __builtin_msa_dotp_u_w (v8u16, v8u16);
  242. v2u64 __builtin_msa_dotp_u_d (v4u32, v4u32);
  243. v8i16 __builtin_msa_dpadd_s_h (v8i16, v16i8, v16i8);
  244. v4i32 __builtin_msa_dpadd_s_w (v4i32, v8i16, v8i16);
  245. v2i64 __builtin_msa_dpadd_s_d (v2i64, v4i32, v4i32);
  246. v8u16 __builtin_msa_dpadd_u_h (v8u16, v16u8, v16u8);
  247. v4u32 __builtin_msa_dpadd_u_w (v4u32, v8u16, v8u16);
  248. v2u64 __builtin_msa_dpadd_u_d (v2u64, v4u32, v4u32);
  249. v8i16 __builtin_msa_dpsub_s_h (v8i16, v16i8, v16i8);
  250. v4i32 __builtin_msa_dpsub_s_w (v4i32, v8i16, v8i16);
  251. v2i64 __builtin_msa_dpsub_s_d (v2i64, v4i32, v4i32);
  252. v8i16 __builtin_msa_dpsub_u_h (v8i16, v16u8, v16u8);
  253. v4i32 __builtin_msa_dpsub_u_w (v4i32, v8u16, v8u16);
  254. v2i64 __builtin_msa_dpsub_u_d (v2i64, v4u32, v4u32);
  255. v4f32 __builtin_msa_fadd_w (v4f32, v4f32);
  256. v2f64 __builtin_msa_fadd_d (v2f64, v2f64);
  257. v4i32 __builtin_msa_fcaf_w (v4f32, v4f32);
  258. v2i64 __builtin_msa_fcaf_d (v2f64, v2f64);
  259. v4i32 __builtin_msa_fceq_w (v4f32, v4f32);
  260. v2i64 __builtin_msa_fceq_d (v2f64, v2f64);
  261. v4i32 __builtin_msa_fclass_w (v4f32);
  262. v2i64 __builtin_msa_fclass_d (v2f64);
  263. v4i32 __builtin_msa_fcle_w (v4f32, v4f32);
  264. v2i64 __builtin_msa_fcle_d (v2f64, v2f64);
  265. v4i32 __builtin_msa_fclt_w (v4f32, v4f32);
  266. v2i64 __builtin_msa_fclt_d (v2f64, v2f64);
  267. v4i32 __builtin_msa_fcne_w (v4f32, v4f32);
  268. v2i64 __builtin_msa_fcne_d (v2f64, v2f64);
  269. v4i32 __builtin_msa_fcor_w (v4f32, v4f32);
  270. v2i64 __builtin_msa_fcor_d (v2f64, v2f64);
  271. v4i32 __builtin_msa_fcueq_w (v4f32, v4f32);
  272. v2i64 __builtin_msa_fcueq_d (v2f64, v2f64);
  273. v4i32 __builtin_msa_fcule_w (v4f32, v4f32);
  274. v2i64 __builtin_msa_fcule_d (v2f64, v2f64);
  275. v4i32 __builtin_msa_fcult_w (v4f32, v4f32);
  276. v2i64 __builtin_msa_fcult_d (v2f64, v2f64);
  277. v4i32 __builtin_msa_fcun_w (v4f32, v4f32);
  278. v2i64 __builtin_msa_fcun_d (v2f64, v2f64);
  279. v4i32 __builtin_msa_fcune_w (v4f32, v4f32);
  280. v2i64 __builtin_msa_fcune_d (v2f64, v2f64);
  281. v4f32 __builtin_msa_fdiv_w (v4f32, v4f32);
  282. v2f64 __builtin_msa_fdiv_d (v2f64, v2f64);
  283. v8i16 __builtin_msa_fexdo_h (v4f32, v4f32);
  284. v4f32 __builtin_msa_fexdo_w (v2f64, v2f64);
  285. v4f32 __builtin_msa_fexp2_w (v4f32, v4i32);
  286. v2f64 __builtin_msa_fexp2_d (v2f64, v2i64);
  287. v4f32 __builtin_msa_fexupl_w (v8i16);
  288. v2f64 __builtin_msa_fexupl_d (v4f32);
  289. v4f32 __builtin_msa_fexupr_w (v8i16);
  290. v2f64 __builtin_msa_fexupr_d (v4f32);
  291. v4f32 __builtin_msa_ffint_s_w (v4i32);
  292. v2f64 __builtin_msa_ffint_s_d (v2i64);
  293. v4f32 __builtin_msa_ffint_u_w (v4u32);
  294. v2f64 __builtin_msa_ffint_u_d (v2u64);
  295. v4f32 __builtin_msa_ffql_w (v8i16);
  296. v2f64 __builtin_msa_ffql_d (v4i32);
  297. v4f32 __builtin_msa_ffqr_w (v8i16);
  298. v2f64 __builtin_msa_ffqr_d (v4i32);
  299. v16i8 __builtin_msa_fill_b (i32);
  300. v8i16 __builtin_msa_fill_h (i32);
  301. v4i32 __builtin_msa_fill_w (i32);
  302. v2i64 __builtin_msa_fill_d (i64);
  303. v4f32 __builtin_msa_flog2_w (v4f32);
  304. v2f64 __builtin_msa_flog2_d (v2f64);
  305. v4f32 __builtin_msa_fmadd_w (v4f32, v4f32, v4f32);
  306. v2f64 __builtin_msa_fmadd_d (v2f64, v2f64, v2f64);
  307. v4f32 __builtin_msa_fmax_w (v4f32, v4f32);
  308. v2f64 __builtin_msa_fmax_d (v2f64, v2f64);
  309. v4f32 __builtin_msa_fmax_a_w (v4f32, v4f32);
  310. v2f64 __builtin_msa_fmax_a_d (v2f64, v2f64);
  311. v4f32 __builtin_msa_fmin_w (v4f32, v4f32);
  312. v2f64 __builtin_msa_fmin_d (v2f64, v2f64);
  313. v4f32 __builtin_msa_fmin_a_w (v4f32, v4f32);
  314. v2f64 __builtin_msa_fmin_a_d (v2f64, v2f64);
  315. v4f32 __builtin_msa_fmsub_w (v4f32, v4f32, v4f32);
  316. v2f64 __builtin_msa_fmsub_d (v2f64, v2f64, v2f64);
  317. v4f32 __builtin_msa_fmul_w (v4f32, v4f32);
  318. v2f64 __builtin_msa_fmul_d (v2f64, v2f64);
  319. v4f32 __builtin_msa_frint_w (v4f32);
  320. v2f64 __builtin_msa_frint_d (v2f64);
  321. v4f32 __builtin_msa_frcp_w (v4f32);
  322. v2f64 __builtin_msa_frcp_d (v2f64);
  323. v4f32 __builtin_msa_frsqrt_w (v4f32);
  324. v2f64 __builtin_msa_frsqrt_d (v2f64);
  325. v4i32 __builtin_msa_fsaf_w (v4f32, v4f32);
  326. v2i64 __builtin_msa_fsaf_d (v2f64, v2f64);
  327. v4i32 __builtin_msa_fseq_w (v4f32, v4f32);
  328. v2i64 __builtin_msa_fseq_d (v2f64, v2f64);
  329. v4i32 __builtin_msa_fsle_w (v4f32, v4f32);
  330. v2i64 __builtin_msa_fsle_d (v2f64, v2f64);
  331. v4i32 __builtin_msa_fslt_w (v4f32, v4f32);
  332. v2i64 __builtin_msa_fslt_d (v2f64, v2f64);
  333. v4i32 __builtin_msa_fsne_w (v4f32, v4f32);
  334. v2i64 __builtin_msa_fsne_d (v2f64, v2f64);
  335. v4i32 __builtin_msa_fsor_w (v4f32, v4f32);
  336. v2i64 __builtin_msa_fsor_d (v2f64, v2f64);
  337. v4f32 __builtin_msa_fsqrt_w (v4f32);
  338. v2f64 __builtin_msa_fsqrt_d (v2f64);
  339. v4f32 __builtin_msa_fsub_w (v4f32, v4f32);
  340. v2f64 __builtin_msa_fsub_d (v2f64, v2f64);
  341. v4i32 __builtin_msa_fsueq_w (v4f32, v4f32);
  342. v2i64 __builtin_msa_fsueq_d (v2f64, v2f64);
  343. v4i32 __builtin_msa_fsule_w (v4f32, v4f32);
  344. v2i64 __builtin_msa_fsule_d (v2f64, v2f64);
  345. v4i32 __builtin_msa_fsult_w (v4f32, v4f32);
  346. v2i64 __builtin_msa_fsult_d (v2f64, v2f64);
  347. v4i32 __builtin_msa_fsun_w (v4f32, v4f32);
  348. v2i64 __builtin_msa_fsun_d (v2f64, v2f64);
  349. v4i32 __builtin_msa_fsune_w (v4f32, v4f32);
  350. v2i64 __builtin_msa_fsune_d (v2f64, v2f64);
  351. v4i32 __builtin_msa_ftint_s_w (v4f32);
  352. v2i64 __builtin_msa_ftint_s_d (v2f64);
  353. v4u32 __builtin_msa_ftint_u_w (v4f32);
  354. v2u64 __builtin_msa_ftint_u_d (v2f64);
  355. v8i16 __builtin_msa_ftq_h (v4f32, v4f32);
  356. v4i32 __builtin_msa_ftq_w (v2f64, v2f64);
  357. v4i32 __builtin_msa_ftrunc_s_w (v4f32);
  358. v2i64 __builtin_msa_ftrunc_s_d (v2f64);
  359. v4u32 __builtin_msa_ftrunc_u_w (v4f32);
  360. v2u64 __builtin_msa_ftrunc_u_d (v2f64);
  361. v8i16 __builtin_msa_hadd_s_h (v16i8, v16i8);
  362. v4i32 __builtin_msa_hadd_s_w (v8i16, v8i16);
  363. v2i64 __builtin_msa_hadd_s_d (v4i32, v4i32);
  364. v8u16 __builtin_msa_hadd_u_h (v16u8, v16u8);
  365. v4u32 __builtin_msa_hadd_u_w (v8u16, v8u16);
  366. v2u64 __builtin_msa_hadd_u_d (v4u32, v4u32);
  367. v8i16 __builtin_msa_hsub_s_h (v16i8, v16i8);
  368. v4i32 __builtin_msa_hsub_s_w (v8i16, v8i16);
  369. v2i64 __builtin_msa_hsub_s_d (v4i32, v4i32);
  370. v8i16 __builtin_msa_hsub_u_h (v16u8, v16u8);
  371. v4i32 __builtin_msa_hsub_u_w (v8u16, v8u16);
  372. v2i64 __builtin_msa_hsub_u_d (v4u32, v4u32);
  373. v16i8 __builtin_msa_ilvev_b (v16i8, v16i8);
  374. v8i16 __builtin_msa_ilvev_h (v8i16, v8i16);
  375. v4i32 __builtin_msa_ilvev_w (v4i32, v4i32);
  376. v2i64 __builtin_msa_ilvev_d (v2i64, v2i64);
  377. v16i8 __builtin_msa_ilvl_b (v16i8, v16i8);
  378. v8i16 __builtin_msa_ilvl_h (v8i16, v8i16);
  379. v4i32 __builtin_msa_ilvl_w (v4i32, v4i32);
  380. v2i64 __builtin_msa_ilvl_d (v2i64, v2i64);
  381. v16i8 __builtin_msa_ilvod_b (v16i8, v16i8);
  382. v8i16 __builtin_msa_ilvod_h (v8i16, v8i16);
  383. v4i32 __builtin_msa_ilvod_w (v4i32, v4i32);
  384. v2i64 __builtin_msa_ilvod_d (v2i64, v2i64);
  385. v16i8 __builtin_msa_ilvr_b (v16i8, v16i8);
  386. v8i16 __builtin_msa_ilvr_h (v8i16, v8i16);
  387. v4i32 __builtin_msa_ilvr_w (v4i32, v4i32);
  388. v2i64 __builtin_msa_ilvr_d (v2i64, v2i64);
  389. v16i8 __builtin_msa_insert_b (v16i8, imm0_15, i32);
  390. v8i16 __builtin_msa_insert_h (v8i16, imm0_7, i32);
  391. v4i32 __builtin_msa_insert_w (v4i32, imm0_3, i32);
  392. v2i64 __builtin_msa_insert_d (v2i64, imm0_1, i64);
  393. v16i8 __builtin_msa_insve_b (v16i8, imm0_15, v16i8);
  394. v8i16 __builtin_msa_insve_h (v8i16, imm0_7, v8i16);
  395. v4i32 __builtin_msa_insve_w (v4i32, imm0_3, v4i32);
  396. v2i64 __builtin_msa_insve_d (v2i64, imm0_1, v2i64);
  397. v16i8 __builtin_msa_ld_b (const void *, imm_n512_511);
  398. v8i16 __builtin_msa_ld_h (const void *, imm_n1024_1022);
  399. v4i32 __builtin_msa_ld_w (const void *, imm_n2048_2044);
  400. v2i64 __builtin_msa_ld_d (const void *, imm_n4096_4088);
  401. v16i8 __builtin_msa_ldi_b (imm_n512_511);
  402. v8i16 __builtin_msa_ldi_h (imm_n512_511);
  403. v4i32 __builtin_msa_ldi_w (imm_n512_511);
  404. v2i64 __builtin_msa_ldi_d (imm_n512_511);
  405. v8i16 __builtin_msa_madd_q_h (v8i16, v8i16, v8i16);
  406. v4i32 __builtin_msa_madd_q_w (v4i32, v4i32, v4i32);
  407. v8i16 __builtin_msa_maddr_q_h (v8i16, v8i16, v8i16);
  408. v4i32 __builtin_msa_maddr_q_w (v4i32, v4i32, v4i32);
  409. v16i8 __builtin_msa_maddv_b (v16i8, v16i8, v16i8);
  410. v8i16 __builtin_msa_maddv_h (v8i16, v8i16, v8i16);
  411. v4i32 __builtin_msa_maddv_w (v4i32, v4i32, v4i32);
  412. v2i64 __builtin_msa_maddv_d (v2i64, v2i64, v2i64);
  413. v16i8 __builtin_msa_max_a_b (v16i8, v16i8);
  414. v8i16 __builtin_msa_max_a_h (v8i16, v8i16);
  415. v4i32 __builtin_msa_max_a_w (v4i32, v4i32);
  416. v2i64 __builtin_msa_max_a_d (v2i64, v2i64);
  417. v16i8 __builtin_msa_max_s_b (v16i8, v16i8);
  418. v8i16 __builtin_msa_max_s_h (v8i16, v8i16);
  419. v4i32 __builtin_msa_max_s_w (v4i32, v4i32);
  420. v2i64 __builtin_msa_max_s_d (v2i64, v2i64);
  421. v16u8 __builtin_msa_max_u_b (v16u8, v16u8);
  422. v8u16 __builtin_msa_max_u_h (v8u16, v8u16);
  423. v4u32 __builtin_msa_max_u_w (v4u32, v4u32);
  424. v2u64 __builtin_msa_max_u_d (v2u64, v2u64);
  425. v16i8 __builtin_msa_maxi_s_b (v16i8, imm_n16_15);
  426. v8i16 __builtin_msa_maxi_s_h (v8i16, imm_n16_15);
  427. v4i32 __builtin_msa_maxi_s_w (v4i32, imm_n16_15);
  428. v2i64 __builtin_msa_maxi_s_d (v2i64, imm_n16_15);
  429. v16u8 __builtin_msa_maxi_u_b (v16u8, imm0_31);
  430. v8u16 __builtin_msa_maxi_u_h (v8u16, imm0_31);
  431. v4u32 __builtin_msa_maxi_u_w (v4u32, imm0_31);
  432. v2u64 __builtin_msa_maxi_u_d (v2u64, imm0_31);
  433. v16i8 __builtin_msa_min_a_b (v16i8, v16i8);
  434. v8i16 __builtin_msa_min_a_h (v8i16, v8i16);
  435. v4i32 __builtin_msa_min_a_w (v4i32, v4i32);
  436. v2i64 __builtin_msa_min_a_d (v2i64, v2i64);
  437. v16i8 __builtin_msa_min_s_b (v16i8, v16i8);
  438. v8i16 __builtin_msa_min_s_h (v8i16, v8i16);
  439. v4i32 __builtin_msa_min_s_w (v4i32, v4i32);
  440. v2i64 __builtin_msa_min_s_d (v2i64, v2i64);
  441. v16u8 __builtin_msa_min_u_b (v16u8, v16u8);
  442. v8u16 __builtin_msa_min_u_h (v8u16, v8u16);
  443. v4u32 __builtin_msa_min_u_w (v4u32, v4u32);
  444. v2u64 __builtin_msa_min_u_d (v2u64, v2u64);
  445. v16i8 __builtin_msa_mini_s_b (v16i8, imm_n16_15);
  446. v8i16 __builtin_msa_mini_s_h (v8i16, imm_n16_15);
  447. v4i32 __builtin_msa_mini_s_w (v4i32, imm_n16_15);
  448. v2i64 __builtin_msa_mini_s_d (v2i64, imm_n16_15);
  449. v16u8 __builtin_msa_mini_u_b (v16u8, imm0_31);
  450. v8u16 __builtin_msa_mini_u_h (v8u16, imm0_31);
  451. v4u32 __builtin_msa_mini_u_w (v4u32, imm0_31);
  452. v2u64 __builtin_msa_mini_u_d (v2u64, imm0_31);
  453. v16i8 __builtin_msa_mod_s_b (v16i8, v16i8);
  454. v8i16 __builtin_msa_mod_s_h (v8i16, v8i16);
  455. v4i32 __builtin_msa_mod_s_w (v4i32, v4i32);
  456. v2i64 __builtin_msa_mod_s_d (v2i64, v2i64);
  457. v16u8 __builtin_msa_mod_u_b (v16u8, v16u8);
  458. v8u16 __builtin_msa_mod_u_h (v8u16, v8u16);
  459. v4u32 __builtin_msa_mod_u_w (v4u32, v4u32);
  460. v2u64 __builtin_msa_mod_u_d (v2u64, v2u64);
  461. v16i8 __builtin_msa_move_v (v16i8);
  462. v8i16 __builtin_msa_msub_q_h (v8i16, v8i16, v8i16);
  463. v4i32 __builtin_msa_msub_q_w (v4i32, v4i32, v4i32);
  464. v8i16 __builtin_msa_msubr_q_h (v8i16, v8i16, v8i16);
  465. v4i32 __builtin_msa_msubr_q_w (v4i32, v4i32, v4i32);
  466. v16i8 __builtin_msa_msubv_b (v16i8, v16i8, v16i8);
  467. v8i16 __builtin_msa_msubv_h (v8i16, v8i16, v8i16);
  468. v4i32 __builtin_msa_msubv_w (v4i32, v4i32, v4i32);
  469. v2i64 __builtin_msa_msubv_d (v2i64, v2i64, v2i64);
  470. v8i16 __builtin_msa_mul_q_h (v8i16, v8i16);
  471. v4i32 __builtin_msa_mul_q_w (v4i32, v4i32);
  472. v8i16 __builtin_msa_mulr_q_h (v8i16, v8i16);
  473. v4i32 __builtin_msa_mulr_q_w (v4i32, v4i32);
  474. v16i8 __builtin_msa_mulv_b (v16i8, v16i8);
  475. v8i16 __builtin_msa_mulv_h (v8i16, v8i16);
  476. v4i32 __builtin_msa_mulv_w (v4i32, v4i32);
  477. v2i64 __builtin_msa_mulv_d (v2i64, v2i64);
  478. v16i8 __builtin_msa_nloc_b (v16i8);
  479. v8i16 __builtin_msa_nloc_h (v8i16);
  480. v4i32 __builtin_msa_nloc_w (v4i32);
  481. v2i64 __builtin_msa_nloc_d (v2i64);
  482. v16i8 __builtin_msa_nlzc_b (v16i8);
  483. v8i16 __builtin_msa_nlzc_h (v8i16);
  484. v4i32 __builtin_msa_nlzc_w (v4i32);
  485. v2i64 __builtin_msa_nlzc_d (v2i64);
  486. v16u8 __builtin_msa_nor_v (v16u8, v16u8);
  487. v16u8 __builtin_msa_nori_b (v16u8, imm0_255);
  488. v16u8 __builtin_msa_or_v (v16u8, v16u8);
  489. v16u8 __builtin_msa_ori_b (v16u8, imm0_255);
  490. v16i8 __builtin_msa_pckev_b (v16i8, v16i8);
  491. v8i16 __builtin_msa_pckev_h (v8i16, v8i16);
  492. v4i32 __builtin_msa_pckev_w (v4i32, v4i32);
  493. v2i64 __builtin_msa_pckev_d (v2i64, v2i64);
  494. v16i8 __builtin_msa_pckod_b (v16i8, v16i8);
  495. v8i16 __builtin_msa_pckod_h (v8i16, v8i16);
  496. v4i32 __builtin_msa_pckod_w (v4i32, v4i32);
  497. v2i64 __builtin_msa_pckod_d (v2i64, v2i64);
  498. v16i8 __builtin_msa_pcnt_b (v16i8);
  499. v8i16 __builtin_msa_pcnt_h (v8i16);
  500. v4i32 __builtin_msa_pcnt_w (v4i32);
  501. v2i64 __builtin_msa_pcnt_d (v2i64);
  502. v16i8 __builtin_msa_sat_s_b (v16i8, imm0_7);
  503. v8i16 __builtin_msa_sat_s_h (v8i16, imm0_15);
  504. v4i32 __builtin_msa_sat_s_w (v4i32, imm0_31);
  505. v2i64 __builtin_msa_sat_s_d (v2i64, imm0_63);
  506. v16u8 __builtin_msa_sat_u_b (v16u8, imm0_7);
  507. v8u16 __builtin_msa_sat_u_h (v8u16, imm0_15);
  508. v4u32 __builtin_msa_sat_u_w (v4u32, imm0_31);
  509. v2u64 __builtin_msa_sat_u_d (v2u64, imm0_63);
  510. v16i8 __builtin_msa_shf_b (v16i8, imm0_255);
  511. v8i16 __builtin_msa_shf_h (v8i16, imm0_255);
  512. v4i32 __builtin_msa_shf_w (v4i32, imm0_255);
  513. v16i8 __builtin_msa_sld_b (v16i8, v16i8, i32);
  514. v8i16 __builtin_msa_sld_h (v8i16, v8i16, i32);
  515. v4i32 __builtin_msa_sld_w (v4i32, v4i32, i32);
  516. v2i64 __builtin_msa_sld_d (v2i64, v2i64, i32);
  517. v16i8 __builtin_msa_sldi_b (v16i8, v16i8, imm0_15);
  518. v8i16 __builtin_msa_sldi_h (v8i16, v8i16, imm0_7);
  519. v4i32 __builtin_msa_sldi_w (v4i32, v4i32, imm0_3);
  520. v2i64 __builtin_msa_sldi_d (v2i64, v2i64, imm0_1);
  521. v16i8 __builtin_msa_sll_b (v16i8, v16i8);
  522. v8i16 __builtin_msa_sll_h (v8i16, v8i16);
  523. v4i32 __builtin_msa_sll_w (v4i32, v4i32);
  524. v2i64 __builtin_msa_sll_d (v2i64, v2i64);
  525. v16i8 __builtin_msa_slli_b (v16i8, imm0_7);
  526. v8i16 __builtin_msa_slli_h (v8i16, imm0_15);
  527. v4i32 __builtin_msa_slli_w (v4i32, imm0_31);
  528. v2i64 __builtin_msa_slli_d (v2i64, imm0_63);
  529. v16i8 __builtin_msa_splat_b (v16i8, i32);
  530. v8i16 __builtin_msa_splat_h (v8i16, i32);
  531. v4i32 __builtin_msa_splat_w (v4i32, i32);
  532. v2i64 __builtin_msa_splat_d (v2i64, i32);
  533. v16i8 __builtin_msa_splati_b (v16i8, imm0_15);
  534. v8i16 __builtin_msa_splati_h (v8i16, imm0_7);
  535. v4i32 __builtin_msa_splati_w (v4i32, imm0_3);
  536. v2i64 __builtin_msa_splati_d (v2i64, imm0_1);
  537. v16i8 __builtin_msa_sra_b (v16i8, v16i8);
  538. v8i16 __builtin_msa_sra_h (v8i16, v8i16);
  539. v4i32 __builtin_msa_sra_w (v4i32, v4i32);
  540. v2i64 __builtin_msa_sra_d (v2i64, v2i64);
  541. v16i8 __builtin_msa_srai_b (v16i8, imm0_7);
  542. v8i16 __builtin_msa_srai_h (v8i16, imm0_15);
  543. v4i32 __builtin_msa_srai_w (v4i32, imm0_31);
  544. v2i64 __builtin_msa_srai_d (v2i64, imm0_63);
  545. v16i8 __builtin_msa_srar_b (v16i8, v16i8);
  546. v8i16 __builtin_msa_srar_h (v8i16, v8i16);
  547. v4i32 __builtin_msa_srar_w (v4i32, v4i32);
  548. v2i64 __builtin_msa_srar_d (v2i64, v2i64);
  549. v16i8 __builtin_msa_srari_b (v16i8, imm0_7);
  550. v8i16 __builtin_msa_srari_h (v8i16, imm0_15);
  551. v4i32 __builtin_msa_srari_w (v4i32, imm0_31);
  552. v2i64 __builtin_msa_srari_d (v2i64, imm0_63);
  553. v16i8 __builtin_msa_srl_b (v16i8, v16i8);
  554. v8i16 __builtin_msa_srl_h (v8i16, v8i16);
  555. v4i32 __builtin_msa_srl_w (v4i32, v4i32);
  556. v2i64 __builtin_msa_srl_d (v2i64, v2i64);
  557. v16i8 __builtin_msa_srli_b (v16i8, imm0_7);
  558. v8i16 __builtin_msa_srli_h (v8i16, imm0_15);
  559. v4i32 __builtin_msa_srli_w (v4i32, imm0_31);
  560. v2i64 __builtin_msa_srli_d (v2i64, imm0_63);
  561. v16i8 __builtin_msa_srlr_b (v16i8, v16i8);
  562. v8i16 __builtin_msa_srlr_h (v8i16, v8i16);
  563. v4i32 __builtin_msa_srlr_w (v4i32, v4i32);
  564. v2i64 __builtin_msa_srlr_d (v2i64, v2i64);
  565. v16i8 __builtin_msa_srlri_b (v16i8, imm0_7);
  566. v8i16 __builtin_msa_srlri_h (v8i16, imm0_15);
  567. v4i32 __builtin_msa_srlri_w (v4i32, imm0_31);
  568. v2i64 __builtin_msa_srlri_d (v2i64, imm0_63);
  569. void __builtin_msa_st_b (v16i8, void *, imm_n512_511);
  570. void __builtin_msa_st_h (v8i16, void *, imm_n1024_1022);
  571. void __builtin_msa_st_w (v4i32, void *, imm_n2048_2044);
  572. void __builtin_msa_st_d (v2i64, void *, imm_n4096_4088);
  573. v16i8 __builtin_msa_subs_s_b (v16i8, v16i8);
  574. v8i16 __builtin_msa_subs_s_h (v8i16, v8i16);
  575. v4i32 __builtin_msa_subs_s_w (v4i32, v4i32);
  576. v2i64 __builtin_msa_subs_s_d (v2i64, v2i64);
  577. v16u8 __builtin_msa_subs_u_b (v16u8, v16u8);
  578. v8u16 __builtin_msa_subs_u_h (v8u16, v8u16);
  579. v4u32 __builtin_msa_subs_u_w (v4u32, v4u32);
  580. v2u64 __builtin_msa_subs_u_d (v2u64, v2u64);
  581. v16u8 __builtin_msa_subsus_u_b (v16u8, v16i8);
  582. v8u16 __builtin_msa_subsus_u_h (v8u16, v8i16);
  583. v4u32 __builtin_msa_subsus_u_w (v4u32, v4i32);
  584. v2u64 __builtin_msa_subsus_u_d (v2u64, v2i64);
  585. v16i8 __builtin_msa_subsuu_s_b (v16u8, v16u8);
  586. v8i16 __builtin_msa_subsuu_s_h (v8u16, v8u16);
  587. v4i32 __builtin_msa_subsuu_s_w (v4u32, v4u32);
  588. v2i64 __builtin_msa_subsuu_s_d (v2u64, v2u64);
  589. v16i8 __builtin_msa_subv_b (v16i8, v16i8);
  590. v8i16 __builtin_msa_subv_h (v8i16, v8i16);
  591. v4i32 __builtin_msa_subv_w (v4i32, v4i32);
  592. v2i64 __builtin_msa_subv_d (v2i64, v2i64);
  593. v16i8 __builtin_msa_subvi_b (v16i8, imm0_31);
  594. v8i16 __builtin_msa_subvi_h (v8i16, imm0_31);
  595. v4i32 __builtin_msa_subvi_w (v4i32, imm0_31);
  596. v2i64 __builtin_msa_subvi_d (v2i64, imm0_31);
  597. v16i8 __builtin_msa_vshf_b (v16i8, v16i8, v16i8);
  598. v8i16 __builtin_msa_vshf_h (v8i16, v8i16, v8i16);
  599. v4i32 __builtin_msa_vshf_w (v4i32, v4i32, v4i32);
  600. v2i64 __builtin_msa_vshf_d (v2i64, v2i64, v2i64);
  601. v16u8 __builtin_msa_xor_v (v16u8, v16u8);
  602. v16u8 __builtin_msa_xori_b (v16u8, imm0_255);
  603. </pre></div>
  604. <hr>
  605. <div class="header">
  606. <p>
  607. Up: <a href="MIPS-SIMD-Architecture-_0028MSA_0029-Support.html#MIPS-SIMD-Architecture-_0028MSA_0029-Support" accesskey="u" rel="up">MIPS SIMD Architecture (MSA) Support</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
  608. </div>
  609. </body>
  610. </html>