paired.h 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /* PowerPC 750CL user include file.
  2. Copyright (C) 2007-2015 Free Software Foundation, Inc.
  3. Contributed by Revital Eres (eres@il.ibm.com).
  4. This file is part of GCC.
  5. GCC is free software; you can redistribute it and/or modify it
  6. under the terms of the GNU General Public License as published
  7. by the Free Software Foundation; either version 3, or (at your
  8. option) any later version.
  9. GCC is distributed in the hope that it will be useful, but WITHOUT
  10. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  11. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
  12. License for more details.
  13. Under Section 7 of GPL version 3, you are granted additional
  14. permissions described in the GCC Runtime Library Exception, version
  15. 3.1, as published by the Free Software Foundation.
  16. You should have received a copy of the GNU General Public License and
  17. a copy of the GCC Runtime Library Exception along with this program;
  18. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  19. <http://www.gnu.org/licenses/>. */
  20. #ifndef _PAIRED_H
  21. #define _PAIRED_H
  22. #define vector __attribute__((vector_size(8)))
  23. #define paired_msub __builtin_paired_msub
  24. #define paired_madd __builtin_paired_madd
  25. #define paired_nmsub __builtin_paired_nmsub
  26. #define paired_nmadd __builtin_paired_nmadd
  27. #define paired_sum0 __builtin_paired_sum0
  28. #define paired_sum1 __builtin_paired_sum1
  29. #define paired_div __builtin_paired_divv2sf3
  30. #define paired_add __builtin_paired_addv2sf3
  31. #define paired_sub __builtin_paired_subv2sf3
  32. #define paired_mul __builtin_paired_mulv2sf3
  33. #define paired_muls0 __builtin_paired_muls0
  34. #define paired_muls1 __builtin_paired_muls1
  35. #define paired_madds0 __builtin_paired_madds0
  36. #define paired_madds1 __builtin_paired_madds1
  37. #define paired_merge00 __builtin_paired_merge00
  38. #define paired_merge01 __builtin_paired_merge01
  39. #define paired_merge10 __builtin_paired_merge10
  40. #define paired_merge11 __builtin_paired_merge11
  41. #define paired_abs __builtin_paired_absv2sf2
  42. #define paired_nabs __builtin_paired_nabsv2sf2
  43. #define paired_neg __builtin_paired_negv2sf2
  44. #define paired_sqrt __builtin_paired_sqrtv2sf2
  45. #define paired_res __builtin_paired_resv2sf2
  46. #define paired_stx __builtin_paired_stx
  47. #define paired_lx __builtin_paired_lx
  48. #define paired_cmpu0 __builtin_paired_cmpu0
  49. #define paired_cmpu1 __builtin_paired_cmpu1
  50. #define paired_sel __builtin_paired_selv2sf4
  51. /* Condition register codes for Paired predicates. */
  52. #define LT 0
  53. #define GT 1
  54. #define EQ 2
  55. #define UN 3
  56. #define paired_cmpu0_un(a,b) __builtin_paired_cmpu0 (UN, (a), (b))
  57. #define paired_cmpu0_eq(a,b) __builtin_paired_cmpu0 (EQ, (a), (b))
  58. #define paired_cmpu0_lt(a,b) __builtin_paired_cmpu0 (LT, (a), (b))
  59. #define paired_cmpu0_gt(a,b) __builtin_paired_cmpu0 (GT, (a), (b))
  60. #define paired_cmpu1_un(a,b) __builtin_paired_cmpu1 (UN, (a), (b))
  61. #define paired_cmpu1_eq(a,b) __builtin_paired_cmpu1 (EQ, (a), (b))
  62. #define paired_cmpu1_lt(a,b) __builtin_paired_cmpu1 (LT, (a), (b))
  63. #define paired_cmpu1_gt(a,b) __builtin_paired_cmpu1 (GT, (a), (b))
  64. #endif /* _PAIRED_H */