msa.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583
  1. /*===---- msa.h - MIPS MSA intrinsics --------------------------------------===
  2. *
  3. * Permission is hereby granted, free of charge, to any person obtaining a copy
  4. * of this software and associated documentation files (the "Software"), to deal
  5. * in the Software without restriction, including without limitation the rights
  6. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  7. * copies of the Software, and to permit persons to whom the Software is
  8. * furnished to do so, subject to the following conditions:
  9. *
  10. * The above copyright notice and this permission notice shall be included in
  11. * all copies or substantial portions of the Software.
  12. *
  13. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  14. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  15. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  16. * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  17. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  18. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  19. * THE SOFTWARE.
  20. *
  21. *===-----------------------------------------------------------------------===
  22. */
  23. #ifndef _MSA_H
  24. #define _MSA_H 1
  25. #if defined(__mips_msa)
  26. typedef signed char v16i8 __attribute__((vector_size(16), aligned(16)));
  27. typedef signed char v16i8_b __attribute__((vector_size(16), aligned(1)));
  28. typedef unsigned char v16u8 __attribute__((vector_size(16), aligned(16)));
  29. typedef unsigned char v16u8_b __attribute__((vector_size(16), aligned(1)));
  30. typedef short v8i16 __attribute__((vector_size(16), aligned(16)));
  31. typedef short v8i16_h __attribute__((vector_size(16), aligned(2)));
  32. typedef unsigned short v8u16 __attribute__((vector_size(16), aligned(16)));
  33. typedef unsigned short v8u16_h __attribute__((vector_size(16), aligned(2)));
  34. typedef int v4i32 __attribute__((vector_size(16), aligned(16)));
  35. typedef int v4i32_w __attribute__((vector_size(16), aligned(4)));
  36. typedef unsigned int v4u32 __attribute__((vector_size(16), aligned(16)));
  37. typedef unsigned int v4u32_w __attribute__((vector_size(16), aligned(4)));
  38. typedef long long v2i64 __attribute__((vector_size(16), aligned(16)));
  39. typedef long long v2i64_d __attribute__((vector_size(16), aligned(8)));
  40. typedef unsigned long long v2u64 __attribute__((vector_size(16), aligned(16)));
  41. typedef unsigned long long v2u64_d __attribute__((vector_size(16), aligned(8)));
  42. typedef float v4f32 __attribute__((vector_size(16), aligned(16)));
  43. typedef float v4f32_w __attribute__((vector_size(16), aligned(4)));
  44. typedef double v2f64 __attribute__ ((vector_size(16), aligned(16)));
  45. typedef double v2f64_d __attribute__ ((vector_size(16), aligned(8)));
  46. #define __msa_sll_b __builtin_msa_sll_b
  47. #define __msa_sll_h __builtin_msa_sll_h
  48. #define __msa_sll_w __builtin_msa_sll_w
  49. #define __msa_sll_d __builtin_msa_sll_d
  50. #define __msa_slli_b __builtin_msa_slli_b
  51. #define __msa_slli_h __builtin_msa_slli_h
  52. #define __msa_slli_w __builtin_msa_slli_w
  53. #define __msa_slli_d __builtin_msa_slli_d
  54. #define __msa_sra_b __builtin_msa_sra_b
  55. #define __msa_sra_h __builtin_msa_sra_h
  56. #define __msa_sra_w __builtin_msa_sra_w
  57. #define __msa_sra_d __builtin_msa_sra_d
  58. #define __msa_srai_b __builtin_msa_srai_b
  59. #define __msa_srai_h __builtin_msa_srai_h
  60. #define __msa_srai_w __builtin_msa_srai_w
  61. #define __msa_srai_d __builtin_msa_srai_d
  62. #define __msa_srar_b __builtin_msa_srar_b
  63. #define __msa_srar_h __builtin_msa_srar_h
  64. #define __msa_srar_w __builtin_msa_srar_w
  65. #define __msa_srar_d __builtin_msa_srar_d
  66. #define __msa_srari_b __builtin_msa_srari_b
  67. #define __msa_srari_h __builtin_msa_srari_h
  68. #define __msa_srari_w __builtin_msa_srari_w
  69. #define __msa_srari_d __builtin_msa_srari_d
  70. #define __msa_srl_b __builtin_msa_srl_b
  71. #define __msa_srl_h __builtin_msa_srl_h
  72. #define __msa_srl_w __builtin_msa_srl_w
  73. #define __msa_srl_d __builtin_msa_srl_d
  74. #define __msa_srli_b __builtin_msa_srli_b
  75. #define __msa_srli_h __builtin_msa_srli_h
  76. #define __msa_srli_w __builtin_msa_srli_w
  77. #define __msa_srli_d __builtin_msa_srli_d
  78. #define __msa_srlr_b __builtin_msa_srlr_b
  79. #define __msa_srlr_h __builtin_msa_srlr_h
  80. #define __msa_srlr_w __builtin_msa_srlr_w
  81. #define __msa_srlr_d __builtin_msa_srlr_d
  82. #define __msa_srlri_b __builtin_msa_srlri_b
  83. #define __msa_srlri_h __builtin_msa_srlri_h
  84. #define __msa_srlri_w __builtin_msa_srlri_w
  85. #define __msa_srlri_d __builtin_msa_srlri_d
  86. #define __msa_bclr_b __builtin_msa_bclr_b
  87. #define __msa_bclr_h __builtin_msa_bclr_h
  88. #define __msa_bclr_w __builtin_msa_bclr_w
  89. #define __msa_bclr_d __builtin_msa_bclr_d
  90. #define __msa_bclri_b __builtin_msa_bclri_b
  91. #define __msa_bclri_h __builtin_msa_bclri_h
  92. #define __msa_bclri_w __builtin_msa_bclri_w
  93. #define __msa_bclri_d __builtin_msa_bclri_d
  94. #define __msa_bset_b __builtin_msa_bset_b
  95. #define __msa_bset_h __builtin_msa_bset_h
  96. #define __msa_bset_w __builtin_msa_bset_w
  97. #define __msa_bset_d __builtin_msa_bset_d
  98. #define __msa_bseti_b __builtin_msa_bseti_b
  99. #define __msa_bseti_h __builtin_msa_bseti_h
  100. #define __msa_bseti_w __builtin_msa_bseti_w
  101. #define __msa_bseti_d __builtin_msa_bseti_d
  102. #define __msa_bneg_b __builtin_msa_bneg_b
  103. #define __msa_bneg_h __builtin_msa_bneg_h
  104. #define __msa_bneg_w __builtin_msa_bneg_w
  105. #define __msa_bneg_d __builtin_msa_bneg_d
  106. #define __msa_bnegi_b __builtin_msa_bnegi_b
  107. #define __msa_bnegi_h __builtin_msa_bnegi_h
  108. #define __msa_bnegi_w __builtin_msa_bnegi_w
  109. #define __msa_bnegi_d __builtin_msa_bnegi_d
  110. #define __msa_binsl_b __builtin_msa_binsl_b
  111. #define __msa_binsl_h __builtin_msa_binsl_h
  112. #define __msa_binsl_w __builtin_msa_binsl_w
  113. #define __msa_binsl_d __builtin_msa_binsl_d
  114. #define __msa_binsli_b __builtin_msa_binsli_b
  115. #define __msa_binsli_h __builtin_msa_binsli_h
  116. #define __msa_binsli_w __builtin_msa_binsli_w
  117. #define __msa_binsli_d __builtin_msa_binsli_d
  118. #define __msa_binsr_b __builtin_msa_binsr_b
  119. #define __msa_binsr_h __builtin_msa_binsr_h
  120. #define __msa_binsr_w __builtin_msa_binsr_w
  121. #define __msa_binsr_d __builtin_msa_binsr_d
  122. #define __msa_binsri_b __builtin_msa_binsri_b
  123. #define __msa_binsri_h __builtin_msa_binsri_h
  124. #define __msa_binsri_w __builtin_msa_binsri_w
  125. #define __msa_binsri_d __builtin_msa_binsri_d
  126. #define __msa_addv_b __builtin_msa_addv_b
  127. #define __msa_addv_h __builtin_msa_addv_h
  128. #define __msa_addv_w __builtin_msa_addv_w
  129. #define __msa_addv_d __builtin_msa_addv_d
  130. #define __msa_addvi_b __builtin_msa_addvi_b
  131. #define __msa_addvi_h __builtin_msa_addvi_h
  132. #define __msa_addvi_w __builtin_msa_addvi_w
  133. #define __msa_addvi_d __builtin_msa_addvi_d
  134. #define __msa_subv_b __builtin_msa_subv_b
  135. #define __msa_subv_h __builtin_msa_subv_h
  136. #define __msa_subv_w __builtin_msa_subv_w
  137. #define __msa_subv_d __builtin_msa_subv_d
  138. #define __msa_subvi_b __builtin_msa_subvi_b
  139. #define __msa_subvi_h __builtin_msa_subvi_h
  140. #define __msa_subvi_w __builtin_msa_subvi_w
  141. #define __msa_subvi_d __builtin_msa_subvi_d
  142. #define __msa_max_s_b __builtin_msa_max_s_b
  143. #define __msa_max_s_h __builtin_msa_max_s_h
  144. #define __msa_max_s_w __builtin_msa_max_s_w
  145. #define __msa_max_s_d __builtin_msa_max_s_d
  146. #define __msa_maxi_s_b __builtin_msa_maxi_s_b
  147. #define __msa_maxi_s_h __builtin_msa_maxi_s_h
  148. #define __msa_maxi_s_w __builtin_msa_maxi_s_w
  149. #define __msa_maxi_s_d __builtin_msa_maxi_s_d
  150. #define __msa_max_u_b __builtin_msa_max_u_b
  151. #define __msa_max_u_h __builtin_msa_max_u_h
  152. #define __msa_max_u_w __builtin_msa_max_u_w
  153. #define __msa_max_u_d __builtin_msa_max_u_d
  154. #define __msa_maxi_u_b __builtin_msa_maxi_u_b
  155. #define __msa_maxi_u_h __builtin_msa_maxi_u_h
  156. #define __msa_maxi_u_w __builtin_msa_maxi_u_w
  157. #define __msa_maxi_u_d __builtin_msa_maxi_u_d
  158. #define __msa_min_s_b __builtin_msa_min_s_b
  159. #define __msa_min_s_h __builtin_msa_min_s_h
  160. #define __msa_min_s_w __builtin_msa_min_s_w
  161. #define __msa_min_s_d __builtin_msa_min_s_d
  162. #define __msa_mini_s_b __builtin_msa_mini_s_b
  163. #define __msa_mini_s_h __builtin_msa_mini_s_h
  164. #define __msa_mini_s_w __builtin_msa_mini_s_w
  165. #define __msa_mini_s_d __builtin_msa_mini_s_d
  166. #define __msa_min_u_b __builtin_msa_min_u_b
  167. #define __msa_min_u_h __builtin_msa_min_u_h
  168. #define __msa_min_u_w __builtin_msa_min_u_w
  169. #define __msa_min_u_d __builtin_msa_min_u_d
  170. #define __msa_mini_u_b __builtin_msa_mini_u_b
  171. #define __msa_mini_u_h __builtin_msa_mini_u_h
  172. #define __msa_mini_u_w __builtin_msa_mini_u_w
  173. #define __msa_mini_u_d __builtin_msa_mini_u_d
  174. #define __msa_max_a_b __builtin_msa_max_a_b
  175. #define __msa_max_a_h __builtin_msa_max_a_h
  176. #define __msa_max_a_w __builtin_msa_max_a_w
  177. #define __msa_max_a_d __builtin_msa_max_a_d
  178. #define __msa_min_a_b __builtin_msa_min_a_b
  179. #define __msa_min_a_h __builtin_msa_min_a_h
  180. #define __msa_min_a_w __builtin_msa_min_a_w
  181. #define __msa_min_a_d __builtin_msa_min_a_d
  182. #define __msa_ceq_b __builtin_msa_ceq_b
  183. #define __msa_ceq_h __builtin_msa_ceq_h
  184. #define __msa_ceq_w __builtin_msa_ceq_w
  185. #define __msa_ceq_d __builtin_msa_ceq_d
  186. #define __msa_ceqi_b __builtin_msa_ceqi_b
  187. #define __msa_ceqi_h __builtin_msa_ceqi_h
  188. #define __msa_ceqi_w __builtin_msa_ceqi_w
  189. #define __msa_ceqi_d __builtin_msa_ceqi_d
  190. #define __msa_clt_s_b __builtin_msa_clt_s_b
  191. #define __msa_clt_s_h __builtin_msa_clt_s_h
  192. #define __msa_clt_s_w __builtin_msa_clt_s_w
  193. #define __msa_clt_s_d __builtin_msa_clt_s_d
  194. #define __msa_clti_s_b __builtin_msa_clti_s_b
  195. #define __msa_clti_s_h __builtin_msa_clti_s_h
  196. #define __msa_clti_s_w __builtin_msa_clti_s_w
  197. #define __msa_clti_s_d __builtin_msa_clti_s_d
  198. #define __msa_clt_u_b __builtin_msa_clt_u_b
  199. #define __msa_clt_u_h __builtin_msa_clt_u_h
  200. #define __msa_clt_u_w __builtin_msa_clt_u_w
  201. #define __msa_clt_u_d __builtin_msa_clt_u_d
  202. #define __msa_clti_u_b __builtin_msa_clti_u_b
  203. #define __msa_clti_u_h __builtin_msa_clti_u_h
  204. #define __msa_clti_u_w __builtin_msa_clti_u_w
  205. #define __msa_clti_u_d __builtin_msa_clti_u_d
  206. #define __msa_cle_s_b __builtin_msa_cle_s_b
  207. #define __msa_cle_s_h __builtin_msa_cle_s_h
  208. #define __msa_cle_s_w __builtin_msa_cle_s_w
  209. #define __msa_cle_s_d __builtin_msa_cle_s_d
  210. #define __msa_clei_s_b __builtin_msa_clei_s_b
  211. #define __msa_clei_s_h __builtin_msa_clei_s_h
  212. #define __msa_clei_s_w __builtin_msa_clei_s_w
  213. #define __msa_clei_s_d __builtin_msa_clei_s_d
  214. #define __msa_cle_u_b __builtin_msa_cle_u_b
  215. #define __msa_cle_u_h __builtin_msa_cle_u_h
  216. #define __msa_cle_u_w __builtin_msa_cle_u_w
  217. #define __msa_cle_u_d __builtin_msa_cle_u_d
  218. #define __msa_clei_u_b __builtin_msa_clei_u_b
  219. #define __msa_clei_u_h __builtin_msa_clei_u_h
  220. #define __msa_clei_u_w __builtin_msa_clei_u_w
  221. #define __msa_clei_u_d __builtin_msa_clei_u_d
  222. #define __msa_ld_b __builtin_msa_ld_b
  223. #define __msa_ld_h __builtin_msa_ld_h
  224. #define __msa_ld_w __builtin_msa_ld_w
  225. #define __msa_ld_d __builtin_msa_ld_d
  226. #define __msa_st_b __builtin_msa_st_b
  227. #define __msa_st_h __builtin_msa_st_h
  228. #define __msa_st_w __builtin_msa_st_w
  229. #define __msa_st_d __builtin_msa_st_d
  230. #define __msa_sat_s_b __builtin_msa_sat_s_b
  231. #define __msa_sat_s_h __builtin_msa_sat_s_h
  232. #define __msa_sat_s_w __builtin_msa_sat_s_w
  233. #define __msa_sat_s_d __builtin_msa_sat_s_d
  234. #define __msa_sat_u_b __builtin_msa_sat_u_b
  235. #define __msa_sat_u_h __builtin_msa_sat_u_h
  236. #define __msa_sat_u_w __builtin_msa_sat_u_w
  237. #define __msa_sat_u_d __builtin_msa_sat_u_d
  238. #define __msa_add_a_b __builtin_msa_add_a_b
  239. #define __msa_add_a_h __builtin_msa_add_a_h
  240. #define __msa_add_a_w __builtin_msa_add_a_w
  241. #define __msa_add_a_d __builtin_msa_add_a_d
  242. #define __msa_adds_a_b __builtin_msa_adds_a_b
  243. #define __msa_adds_a_h __builtin_msa_adds_a_h
  244. #define __msa_adds_a_w __builtin_msa_adds_a_w
  245. #define __msa_adds_a_d __builtin_msa_adds_a_d
  246. #define __msa_adds_s_b __builtin_msa_adds_s_b
  247. #define __msa_adds_s_h __builtin_msa_adds_s_h
  248. #define __msa_adds_s_w __builtin_msa_adds_s_w
  249. #define __msa_adds_s_d __builtin_msa_adds_s_d
  250. #define __msa_adds_u_b __builtin_msa_adds_u_b
  251. #define __msa_adds_u_h __builtin_msa_adds_u_h
  252. #define __msa_adds_u_w __builtin_msa_adds_u_w
  253. #define __msa_adds_u_d __builtin_msa_adds_u_d
  254. #define __msa_ave_s_b __builtin_msa_ave_s_b
  255. #define __msa_ave_s_h __builtin_msa_ave_s_h
  256. #define __msa_ave_s_w __builtin_msa_ave_s_w
  257. #define __msa_ave_s_d __builtin_msa_ave_s_d
  258. #define __msa_ave_u_b __builtin_msa_ave_u_b
  259. #define __msa_ave_u_h __builtin_msa_ave_u_h
  260. #define __msa_ave_u_w __builtin_msa_ave_u_w
  261. #define __msa_ave_u_d __builtin_msa_ave_u_d
  262. #define __msa_aver_s_b __builtin_msa_aver_s_b
  263. #define __msa_aver_s_h __builtin_msa_aver_s_h
  264. #define __msa_aver_s_w __builtin_msa_aver_s_w
  265. #define __msa_aver_s_d __builtin_msa_aver_s_d
  266. #define __msa_aver_u_b __builtin_msa_aver_u_b
  267. #define __msa_aver_u_h __builtin_msa_aver_u_h
  268. #define __msa_aver_u_w __builtin_msa_aver_u_w
  269. #define __msa_aver_u_d __builtin_msa_aver_u_d
  270. #define __msa_subs_s_b __builtin_msa_subs_s_b
  271. #define __msa_subs_s_h __builtin_msa_subs_s_h
  272. #define __msa_subs_s_w __builtin_msa_subs_s_w
  273. #define __msa_subs_s_d __builtin_msa_subs_s_d
  274. #define __msa_subs_u_b __builtin_msa_subs_u_b
  275. #define __msa_subs_u_h __builtin_msa_subs_u_h
  276. #define __msa_subs_u_w __builtin_msa_subs_u_w
  277. #define __msa_subs_u_d __builtin_msa_subs_u_d
  278. #define __msa_subsuu_s_b __builtin_msa_subsuu_s_b
  279. #define __msa_subsuu_s_h __builtin_msa_subsuu_s_h
  280. #define __msa_subsuu_s_w __builtin_msa_subsuu_s_w
  281. #define __msa_subsuu_s_d __builtin_msa_subsuu_s_d
  282. #define __msa_subsus_u_b __builtin_msa_subsus_u_b
  283. #define __msa_subsus_u_h __builtin_msa_subsus_u_h
  284. #define __msa_subsus_u_w __builtin_msa_subsus_u_w
  285. #define __msa_subsus_u_d __builtin_msa_subsus_u_d
  286. #define __msa_asub_s_b __builtin_msa_asub_s_b
  287. #define __msa_asub_s_h __builtin_msa_asub_s_h
  288. #define __msa_asub_s_w __builtin_msa_asub_s_w
  289. #define __msa_asub_s_d __builtin_msa_asub_s_d
  290. #define __msa_asub_u_b __builtin_msa_asub_u_b
  291. #define __msa_asub_u_h __builtin_msa_asub_u_h
  292. #define __msa_asub_u_w __builtin_msa_asub_u_w
  293. #define __msa_asub_u_d __builtin_msa_asub_u_d
  294. #define __msa_mulv_b __builtin_msa_mulv_b
  295. #define __msa_mulv_h __builtin_msa_mulv_h
  296. #define __msa_mulv_w __builtin_msa_mulv_w
  297. #define __msa_mulv_d __builtin_msa_mulv_d
  298. #define __msa_maddv_b __builtin_msa_maddv_b
  299. #define __msa_maddv_h __builtin_msa_maddv_h
  300. #define __msa_maddv_w __builtin_msa_maddv_w
  301. #define __msa_maddv_d __builtin_msa_maddv_d
  302. #define __msa_msubv_b __builtin_msa_msubv_b
  303. #define __msa_msubv_h __builtin_msa_msubv_h
  304. #define __msa_msubv_w __builtin_msa_msubv_w
  305. #define __msa_msubv_d __builtin_msa_msubv_d
  306. #define __msa_div_s_b __builtin_msa_div_s_b
  307. #define __msa_div_s_h __builtin_msa_div_s_h
  308. #define __msa_div_s_w __builtin_msa_div_s_w
  309. #define __msa_div_s_d __builtin_msa_div_s_d
  310. #define __msa_div_u_b __builtin_msa_div_u_b
  311. #define __msa_div_u_h __builtin_msa_div_u_h
  312. #define __msa_div_u_w __builtin_msa_div_u_w
  313. #define __msa_div_u_d __builtin_msa_div_u_d
  314. #define __msa_hadd_s_h __builtin_msa_hadd_s_h
  315. #define __msa_hadd_s_w __builtin_msa_hadd_s_w
  316. #define __msa_hadd_s_d __builtin_msa_hadd_s_d
  317. #define __msa_hadd_u_h __builtin_msa_hadd_u_h
  318. #define __msa_hadd_u_w __builtin_msa_hadd_u_w
  319. #define __msa_hadd_u_d __builtin_msa_hadd_u_d
  320. #define __msa_hsub_s_h __builtin_msa_hsub_s_h
  321. #define __msa_hsub_s_w __builtin_msa_hsub_s_w
  322. #define __msa_hsub_s_d __builtin_msa_hsub_s_d
  323. #define __msa_hsub_u_h __builtin_msa_hsub_u_h
  324. #define __msa_hsub_u_w __builtin_msa_hsub_u_w
  325. #define __msa_hsub_u_d __builtin_msa_hsub_u_d
  326. #define __msa_mod_s_b __builtin_msa_mod_s_b
  327. #define __msa_mod_s_h __builtin_msa_mod_s_h
  328. #define __msa_mod_s_w __builtin_msa_mod_s_w
  329. #define __msa_mod_s_d __builtin_msa_mod_s_d
  330. #define __msa_mod_u_b __builtin_msa_mod_u_b
  331. #define __msa_mod_u_h __builtin_msa_mod_u_h
  332. #define __msa_mod_u_w __builtin_msa_mod_u_w
  333. #define __msa_mod_u_d __builtin_msa_mod_u_d
  334. #define __msa_dotp_s_h __builtin_msa_dotp_s_h
  335. #define __msa_dotp_s_w __builtin_msa_dotp_s_w
  336. #define __msa_dotp_s_d __builtin_msa_dotp_s_d
  337. #define __msa_dotp_u_h __builtin_msa_dotp_u_h
  338. #define __msa_dotp_u_w __builtin_msa_dotp_u_w
  339. #define __msa_dotp_u_d __builtin_msa_dotp_u_d
  340. #define __msa_dpadd_s_h __builtin_msa_dpadd_s_h
  341. #define __msa_dpadd_s_w __builtin_msa_dpadd_s_w
  342. #define __msa_dpadd_s_d __builtin_msa_dpadd_s_d
  343. #define __msa_dpadd_u_h __builtin_msa_dpadd_u_h
  344. #define __msa_dpadd_u_w __builtin_msa_dpadd_u_w
  345. #define __msa_dpadd_u_d __builtin_msa_dpadd_u_d
  346. #define __msa_dpsub_s_h __builtin_msa_dpsub_s_h
  347. #define __msa_dpsub_s_w __builtin_msa_dpsub_s_w
  348. #define __msa_dpsub_s_d __builtin_msa_dpsub_s_d
  349. #define __msa_dpsub_u_h __builtin_msa_dpsub_u_h
  350. #define __msa_dpsub_u_w __builtin_msa_dpsub_u_w
  351. #define __msa_dpsub_u_d __builtin_msa_dpsub_u_d
  352. #define __msa_sld_b __builtin_msa_sld_b
  353. #define __msa_sld_h __builtin_msa_sld_h
  354. #define __msa_sld_w __builtin_msa_sld_w
  355. #define __msa_sld_d __builtin_msa_sld_d
  356. #define __msa_sldi_b __builtin_msa_sldi_b
  357. #define __msa_sldi_h __builtin_msa_sldi_h
  358. #define __msa_sldi_w __builtin_msa_sldi_w
  359. #define __msa_sldi_d __builtin_msa_sldi_d
  360. #define __msa_splat_b __builtin_msa_splat_b
  361. #define __msa_splat_h __builtin_msa_splat_h
  362. #define __msa_splat_w __builtin_msa_splat_w
  363. #define __msa_splat_d __builtin_msa_splat_d
  364. #define __msa_splati_b __builtin_msa_splati_b
  365. #define __msa_splati_h __builtin_msa_splati_h
  366. #define __msa_splati_w __builtin_msa_splati_w
  367. #define __msa_splati_d __builtin_msa_splati_d
  368. #define __msa_pckev_b __builtin_msa_pckev_b
  369. #define __msa_pckev_h __builtin_msa_pckev_h
  370. #define __msa_pckev_w __builtin_msa_pckev_w
  371. #define __msa_pckev_d __builtin_msa_pckev_d
  372. #define __msa_pckod_b __builtin_msa_pckod_b
  373. #define __msa_pckod_h __builtin_msa_pckod_h
  374. #define __msa_pckod_w __builtin_msa_pckod_w
  375. #define __msa_pckod_d __builtin_msa_pckod_d
  376. #define __msa_ilvl_b __builtin_msa_ilvl_b
  377. #define __msa_ilvl_h __builtin_msa_ilvl_h
  378. #define __msa_ilvl_w __builtin_msa_ilvl_w
  379. #define __msa_ilvl_d __builtin_msa_ilvl_d
  380. #define __msa_ilvr_b __builtin_msa_ilvr_b
  381. #define __msa_ilvr_h __builtin_msa_ilvr_h
  382. #define __msa_ilvr_w __builtin_msa_ilvr_w
  383. #define __msa_ilvr_d __builtin_msa_ilvr_d
  384. #define __msa_ilvev_b __builtin_msa_ilvev_b
  385. #define __msa_ilvev_h __builtin_msa_ilvev_h
  386. #define __msa_ilvev_w __builtin_msa_ilvev_w
  387. #define __msa_ilvev_d __builtin_msa_ilvev_d
  388. #define __msa_ilvod_b __builtin_msa_ilvod_b
  389. #define __msa_ilvod_h __builtin_msa_ilvod_h
  390. #define __msa_ilvod_w __builtin_msa_ilvod_w
  391. #define __msa_ilvod_d __builtin_msa_ilvod_d
  392. #define __msa_vshf_b __builtin_msa_vshf_b
  393. #define __msa_vshf_h __builtin_msa_vshf_h
  394. #define __msa_vshf_w __builtin_msa_vshf_w
  395. #define __msa_vshf_d __builtin_msa_vshf_d
  396. #define __msa_and_v __builtin_msa_and_v
  397. #define __msa_andi_b __builtin_msa_andi_b
  398. #define __msa_or_v __builtin_msa_or_v
  399. #define __msa_ori_b __builtin_msa_ori_b
  400. #define __msa_nor_v __builtin_msa_nor_v
  401. #define __msa_nori_b __builtin_msa_nori_b
  402. #define __msa_xor_v __builtin_msa_xor_v
  403. #define __msa_xori_b __builtin_msa_xori_b
  404. #define __msa_bmnz_v __builtin_msa_bmnz_v
  405. #define __msa_bmnzi_b __builtin_msa_bmnzi_b
  406. #define __msa_bmz_v __builtin_msa_bmz_v
  407. #define __msa_bmzi_b __builtin_msa_bmzi_b
  408. #define __msa_bsel_v __builtin_msa_bsel_v
  409. #define __msa_bseli_b __builtin_msa_bseli_b
  410. #define __msa_shf_b __builtin_msa_shf_b
  411. #define __msa_shf_h __builtin_msa_shf_h
  412. #define __msa_shf_w __builtin_msa_shf_w
  413. #define __msa_test_bnz_v __builtin_msa_bnz_v
  414. #define __msa_test_bz_v __builtin_msa_bz_v
  415. #define __msa_fill_b __builtin_msa_fill_b
  416. #define __msa_fill_h __builtin_msa_fill_h
  417. #define __msa_fill_w __builtin_msa_fill_w
  418. #define __msa_fill_d __builtin_msa_fill_d
  419. #define __msa_pcnt_b __builtin_msa_pcnt_b
  420. #define __msa_pcnt_h __builtin_msa_pcnt_h
  421. #define __msa_pcnt_w __builtin_msa_pcnt_w
  422. #define __msa_pcnt_d __builtin_msa_pcnt_d
  423. #define __msa_nloc_b __builtin_msa_nloc_b
  424. #define __msa_nloc_h __builtin_msa_nloc_h
  425. #define __msa_nloc_w __builtin_msa_nloc_w
  426. #define __msa_nloc_d __builtin_msa_nloc_d
  427. #define __msa_nlzc_b __builtin_msa_nlzc_b
  428. #define __msa_nlzc_h __builtin_msa_nlzc_h
  429. #define __msa_nlzc_w __builtin_msa_nlzc_w
  430. #define __msa_nlzc_d __builtin_msa_nlzc_d
  431. #define __msa_copy_s_b __builtin_msa_copy_s_b
  432. #define __msa_copy_s_h __builtin_msa_copy_s_h
  433. #define __msa_copy_s_w __builtin_msa_copy_s_w
  434. #define __msa_copy_s_d __builtin_msa_copy_s_d
  435. #define __msa_copy_u_b __builtin_msa_copy_u_b
  436. #define __msa_copy_u_h __builtin_msa_copy_u_h
  437. #define __msa_copy_u_w __builtin_msa_copy_u_w
  438. #define __msa_copy_u_d __builtin_msa_copy_u_d
  439. #define __msa_insert_b __builtin_msa_insert_b
  440. #define __msa_insert_h __builtin_msa_insert_h
  441. #define __msa_insert_w __builtin_msa_insert_w
  442. #define __msa_insert_d __builtin_msa_insert_d
  443. #define __msa_insve_b __builtin_msa_insve_b
  444. #define __msa_insve_h __builtin_msa_insve_h
  445. #define __msa_insve_w __builtin_msa_insve_w
  446. #define __msa_insve_d __builtin_msa_insve_d
  447. #define __msa_test_bnz_b __builtin_msa_bnz_b
  448. #define __msa_test_bnz_h __builtin_msa_bnz_h
  449. #define __msa_test_bnz_w __builtin_msa_bnz_w
  450. #define __msa_test_bnz_d __builtin_msa_bnz_d
  451. #define __msa_test_bz_b __builtin_msa_bz_b
  452. #define __msa_test_bz_h __builtin_msa_bz_h
  453. #define __msa_test_bz_w __builtin_msa_bz_w
  454. #define __msa_test_bz_d __builtin_msa_bz_d
  455. #define __msa_ldi_b __builtin_msa_ldi_b
  456. #define __msa_ldi_h __builtin_msa_ldi_h
  457. #define __msa_ldi_w __builtin_msa_ldi_w
  458. #define __msa_ldi_d __builtin_msa_ldi_d
  459. #define __msa_fcaf_w __builtin_msa_fcaf_w
  460. #define __msa_fcaf_d __builtin_msa_fcaf_d
  461. #define __msa_fcor_w __builtin_msa_fcor_w
  462. #define __msa_fcor_d __builtin_msa_fcor_d
  463. #define __msa_fcun_w __builtin_msa_fcun_w
  464. #define __msa_fcun_d __builtin_msa_fcun_d
  465. #define __msa_fcune_w __builtin_msa_fcune_w
  466. #define __msa_fcune_d __builtin_msa_fcune_d
  467. #define __msa_fcueq_w __builtin_msa_fcueq_w
  468. #define __msa_fcueq_d __builtin_msa_fcueq_d
  469. #define __msa_fceq_w __builtin_msa_fceq_w
  470. #define __msa_fceq_d __builtin_msa_fceq_d
  471. #define __msa_fcne_w __builtin_msa_fcne_w
  472. #define __msa_fcne_d __builtin_msa_fcne_d
  473. #define __msa_fclt_w __builtin_msa_fclt_w
  474. #define __msa_fclt_d __builtin_msa_fclt_d
  475. #define __msa_fcult_w __builtin_msa_fcult_w
  476. #define __msa_fcult_d __builtin_msa_fcult_d
  477. #define __msa_fcle_w __builtin_msa_fcle_w
  478. #define __msa_fcle_d __builtin_msa_fcle_d
  479. #define __msa_fcule_w __builtin_msa_fcule_w
  480. #define __msa_fcule_d __builtin_msa_fcule_d
  481. #define __msa_fsaf_w __builtin_msa_fsaf_w
  482. #define __msa_fsaf_d __builtin_msa_fsaf_d
  483. #define __msa_fsor_w __builtin_msa_fsor_w
  484. #define __msa_fsor_d __builtin_msa_fsor_d
  485. #define __msa_fsun_w __builtin_msa_fsun_w
  486. #define __msa_fsun_d __builtin_msa_fsun_d
  487. #define __msa_fsune_w __builtin_msa_fsune_w
  488. #define __msa_fsune_d __builtin_msa_fsune_d
  489. #define __msa_fsueq_w __builtin_msa_fsueq_w
  490. #define __msa_fsueq_d __builtin_msa_fsueq_d
  491. #define __msa_fseq_w __builtin_msa_fseq_w
  492. #define __msa_fseq_d __builtin_msa_fseq_d
  493. #define __msa_fsne_w __builtin_msa_fsne_w
  494. #define __msa_fsne_d __builtin_msa_fsne_d
  495. #define __msa_fslt_w __builtin_msa_fslt_w
  496. #define __msa_fslt_d __builtin_msa_fslt_d
  497. #define __msa_fsult_w __builtin_msa_fsult_w
  498. #define __msa_fsult_d __builtin_msa_fsult_d
  499. #define __msa_fsle_w __builtin_msa_fsle_w
  500. #define __msa_fsle_d __builtin_msa_fsle_d
  501. #define __msa_fsule_w __builtin_msa_fsule_w
  502. #define __msa_fsule_d __builtin_msa_fsule_d
  503. #define __msa_fadd_w __builtin_msa_fadd_w
  504. #define __msa_fadd_d __builtin_msa_fadd_d
  505. #define __msa_fsub_w __builtin_msa_fsub_w
  506. #define __msa_fsub_d __builtin_msa_fsub_d
  507. #define __msa_fmul_w __builtin_msa_fmul_w
  508. #define __msa_fmul_d __builtin_msa_fmul_d
  509. #define __msa_fdiv_w __builtin_msa_fdiv_w
  510. #define __msa_fdiv_d __builtin_msa_fdiv_d
  511. #define __msa_fmadd_w __builtin_msa_fmadd_w
  512. #define __msa_fmadd_d __builtin_msa_fmadd_d
  513. #define __msa_fmsub_w __builtin_msa_fmsub_w
  514. #define __msa_fmsub_d __builtin_msa_fmsub_d
  515. #define __msa_fexp2_w __builtin_msa_fexp2_w
  516. #define __msa_fexp2_d __builtin_msa_fexp2_d
  517. #define __msa_fexdo_h __builtin_msa_fexdo_h
  518. #define __msa_fexdo_w __builtin_msa_fexdo_w
  519. #define __msa_ftq_h __builtin_msa_ftq_h
  520. #define __msa_ftq_w __builtin_msa_ftq_w
  521. #define __msa_fmin_w __builtin_msa_fmin_w
  522. #define __msa_fmin_d __builtin_msa_fmin_d
  523. #define __msa_fmin_a_w __builtin_msa_fmin_a_w
  524. #define __msa_fmin_a_d __builtin_msa_fmin_a_d
  525. #define __msa_fmax_w __builtin_msa_fmax_w
  526. #define __msa_fmax_d __builtin_msa_fmax_d
  527. #define __msa_fmax_a_w __builtin_msa_fmax_a_w
  528. #define __msa_fmax_a_d __builtin_msa_fmax_a_d
  529. #define __msa_mul_q_h __builtin_msa_mul_q_h
  530. #define __msa_mul_q_w __builtin_msa_mul_q_w
  531. #define __msa_mulr_q_h __builtin_msa_mulr_q_h
  532. #define __msa_mulr_q_w __builtin_msa_mulr_q_w
  533. #define __msa_madd_q_h __builtin_msa_madd_q_h
  534. #define __msa_madd_q_w __builtin_msa_madd_q_w
  535. #define __msa_maddr_q_h __builtin_msa_maddr_q_h
  536. #define __msa_maddr_q_w __builtin_msa_maddr_q_w
  537. #define __msa_msub_q_h __builtin_msa_msub_q_h
  538. #define __msa_msub_q_w __builtin_msa_msub_q_w
  539. #define __msa_msubr_q_h __builtin_msa_msubr_q_h
  540. #define __msa_msubr_q_w __builtin_msa_msubr_q_w
  541. #define __msa_fclass_w __builtin_msa_fclass_w
  542. #define __msa_fclass_d __builtin_msa_fclass_d
  543. #define __msa_fsqrt_w __builtin_msa_fsqrt_w
  544. #define __msa_fsqrt_d __builtin_msa_fsqrt_d
  545. #define __msa_frcp_w __builtin_msa_frcp_w
  546. #define __msa_frcp_d __builtin_msa_frcp_d
  547. #define __msa_frint_w __builtin_msa_frint_w
  548. #define __msa_frint_d __builtin_msa_frint_d
  549. #define __msa_frsqrt_w __builtin_msa_frsqrt_w
  550. #define __msa_frsqrt_d __builtin_msa_frsqrt_d
  551. #define __msa_flog2_w __builtin_msa_flog2_w
  552. #define __msa_flog2_d __builtin_msa_flog2_d
  553. #define __msa_fexupl_w __builtin_msa_fexupl_w
  554. #define __msa_fexupl_d __builtin_msa_fexupl_d
  555. #define __msa_fexupr_w __builtin_msa_fexupr_w
  556. #define __msa_fexupr_d __builtin_msa_fexupr_d
  557. #define __msa_ffql_w __builtin_msa_ffql_w
  558. #define __msa_ffql_d __builtin_msa_ffql_d
  559. #define __msa_ffqr_w __builtin_msa_ffqr_w
  560. #define __msa_ffqr_d __builtin_msa_ffqr_d
  561. #define __msa_ftint_s_w __builtin_msa_ftint_s_w
  562. #define __msa_ftint_s_d __builtin_msa_ftint_s_d
  563. #define __msa_ftint_u_w __builtin_msa_ftint_u_w
  564. #define __msa_ftint_u_d __builtin_msa_ftint_u_d
  565. #define __msa_ftrunc_s_w __builtin_msa_ftrunc_s_w
  566. #define __msa_ftrunc_s_d __builtin_msa_ftrunc_s_d
  567. #define __msa_ftrunc_u_w __builtin_msa_ftrunc_u_w
  568. #define __msa_ftrunc_u_d __builtin_msa_ftrunc_u_d
  569. #define __msa_ffint_s_w __builtin_msa_ffint_s_w
  570. #define __msa_ffint_s_d __builtin_msa_ffint_s_d
  571. #define __msa_ffint_u_w __builtin_msa_ffint_u_w
  572. #define __msa_ffint_u_d __builtin_msa_ffint_u_d
  573. #define __msa_cfcmsa __builtin_msa_cfcmsa
  574. #define __msa_move_v __builtin_msa_move_v
  575. #define __msa_cast_to_vector_float __builtin_msa_cast_to_vector_float
  576. #define __msa_cast_to_vector_double __builtin_msa_cast_to_vector_double
  577. #define __msa_cast_to_scalar_float __builtin_msa_cast_to_scalar_float
  578. #define __msa_cast_to_scalar_double __builtin_msa_cast_to_scalar_double
  579. #endif /* defined(__mips_msa) */
  580. #endif /* _MSA_H */