Makefile.am 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. ########################################################################
  2. # Copyright(c) 2011-2019 Intel Corporation All rights reserved.
  3. #
  4. # Redistribution and use in source and binary forms, with or without
  5. # modification, are permitted provided that the following conditions
  6. # are met:
  7. # * Redistributions of source code must retain the above copyright
  8. # notice, this list of conditions and the following disclaimer.
  9. # * Redistributions in binary form must reproduce the above copyright
  10. # notice, this list of conditions and the following disclaimer in
  11. # the documentation and/or other materials provided with the
  12. # distribution.
  13. # * Neither the name of Intel Corporation nor the names of its
  14. # contributors may be used to endorse or promote products derived
  15. # from this software without specific prior written permission.
  16. #
  17. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  18. # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  19. # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  20. # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  21. # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  22. # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  23. # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  24. # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  25. # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  26. # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  27. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  28. ########################################################################
  29. include erasure_code/aarch64/Makefile.am
  30. include erasure_code/ppc64le/Makefile.am
  31. lsrc += erasure_code/ec_base.c
  32. lsrc_base_aliases += erasure_code/ec_base_aliases.c
  33. lsrc_x86_64 += \
  34. erasure_code/ec_highlevel_func.c \
  35. erasure_code/gf_vect_mul_sse.asm \
  36. erasure_code/gf_vect_mul_avx.asm \
  37. erasure_code/gf_vect_dot_prod_sse.asm \
  38. erasure_code/gf_vect_dot_prod_avx.asm \
  39. erasure_code/gf_vect_dot_prod_avx2.asm \
  40. erasure_code/gf_2vect_dot_prod_sse.asm \
  41. erasure_code/gf_3vect_dot_prod_sse.asm \
  42. erasure_code/gf_4vect_dot_prod_sse.asm \
  43. erasure_code/gf_5vect_dot_prod_sse.asm \
  44. erasure_code/gf_6vect_dot_prod_sse.asm \
  45. erasure_code/gf_2vect_dot_prod_avx.asm \
  46. erasure_code/gf_3vect_dot_prod_avx.asm \
  47. erasure_code/gf_4vect_dot_prod_avx.asm \
  48. erasure_code/gf_5vect_dot_prod_avx.asm \
  49. erasure_code/gf_6vect_dot_prod_avx.asm \
  50. erasure_code/gf_2vect_dot_prod_avx2.asm \
  51. erasure_code/gf_3vect_dot_prod_avx2.asm \
  52. erasure_code/gf_4vect_dot_prod_avx2.asm \
  53. erasure_code/gf_5vect_dot_prod_avx2.asm \
  54. erasure_code/gf_6vect_dot_prod_avx2.asm \
  55. erasure_code/gf_vect_mad_sse.asm \
  56. erasure_code/gf_2vect_mad_sse.asm \
  57. erasure_code/gf_3vect_mad_sse.asm \
  58. erasure_code/gf_4vect_mad_sse.asm \
  59. erasure_code/gf_5vect_mad_sse.asm \
  60. erasure_code/gf_6vect_mad_sse.asm \
  61. erasure_code/gf_vect_mad_avx.asm \
  62. erasure_code/gf_2vect_mad_avx.asm \
  63. erasure_code/gf_3vect_mad_avx.asm \
  64. erasure_code/gf_4vect_mad_avx.asm \
  65. erasure_code/gf_5vect_mad_avx.asm \
  66. erasure_code/gf_6vect_mad_avx.asm \
  67. erasure_code/gf_vect_mad_avx2.asm \
  68. erasure_code/gf_2vect_mad_avx2.asm \
  69. erasure_code/gf_3vect_mad_avx2.asm \
  70. erasure_code/gf_4vect_mad_avx2.asm \
  71. erasure_code/gf_5vect_mad_avx2.asm \
  72. erasure_code/gf_6vect_mad_avx2.asm \
  73. erasure_code/ec_multibinary.asm
  74. #if HAVE_AVX512
  75. lsrc_x86_64 += \
  76. erasure_code/gf_vect_mad_avx2_gfni.asm \
  77. erasure_code/gf_2vect_mad_avx2_gfni.asm \
  78. erasure_code/gf_3vect_mad_avx2_gfni.asm \
  79. erasure_code/gf_4vect_mad_avx2_gfni.asm \
  80. erasure_code/gf_5vect_mad_avx2_gfni.asm \
  81. erasure_code/gf_vect_dot_prod_avx512.asm \
  82. erasure_code/gf_2vect_dot_prod_avx512.asm \
  83. erasure_code/gf_3vect_dot_prod_avx512.asm \
  84. erasure_code/gf_4vect_dot_prod_avx512.asm \
  85. erasure_code/gf_5vect_dot_prod_avx512.asm \
  86. erasure_code/gf_6vect_dot_prod_avx512.asm \
  87. erasure_code/gf_vect_dot_prod_avx512_gfni.asm \
  88. erasure_code/gf_vect_dot_prod_avx2_gfni.asm \
  89. erasure_code/gf_2vect_dot_prod_avx2_gfni.asm \
  90. erasure_code/gf_3vect_dot_prod_avx2_gfni.asm \
  91. erasure_code/gf_2vect_dot_prod_avx512_gfni.asm \
  92. erasure_code/gf_3vect_dot_prod_avx512_gfni.asm \
  93. erasure_code/gf_4vect_dot_prod_avx512_gfni.asm \
  94. erasure_code/gf_5vect_dot_prod_avx512_gfni.asm \
  95. erasure_code/gf_6vect_dot_prod_avx512_gfni.asm \
  96. erasure_code/gf_vect_mad_avx512.asm \
  97. erasure_code/gf_2vect_mad_avx512.asm \
  98. erasure_code/gf_3vect_mad_avx512.asm \
  99. erasure_code/gf_4vect_mad_avx512.asm \
  100. erasure_code/gf_5vect_mad_avx512.asm \
  101. erasure_code/gf_6vect_mad_avx512.asm \
  102. erasure_code/gf_vect_mad_avx512_gfni.asm \
  103. erasure_code/gf_2vect_mad_avx512_gfni.asm \
  104. erasure_code/gf_3vect_mad_avx512_gfni.asm \
  105. erasure_code/gf_4vect_mad_avx512_gfni.asm \
  106. erasure_code/gf_5vect_mad_avx512_gfni.asm \
  107. erasure_code/gf_6vect_mad_avx512_gfni.asm
  108. lsrc_x86_32 += \
  109. erasure_code/ec_highlevel_func.c \
  110. erasure_code/ec_multibinary.asm \
  111. erasure_code/gf_vect_dot_prod_avx.asm \
  112. erasure_code/gf_2vect_dot_prod_avx.asm \
  113. erasure_code/gf_3vect_dot_prod_avx.asm \
  114. erasure_code/gf_4vect_dot_prod_avx.asm \
  115. erasure_code/gf_vect_dot_prod_sse.asm \
  116. erasure_code/gf_2vect_dot_prod_sse.asm \
  117. erasure_code/gf_3vect_dot_prod_sse.asm \
  118. erasure_code/gf_4vect_dot_prod_sse.asm \
  119. erasure_code/gf_vect_dot_prod_avx2.asm \
  120. erasure_code/gf_2vect_dot_prod_avx2.asm \
  121. erasure_code/gf_3vect_dot_prod_avx2.asm \
  122. erasure_code/gf_4vect_dot_prod_avx2.asm
  123. unit_tests32 += erasure_code/erasure_code_base_test \
  124. erasure_code/erasure_code_test \
  125. erasure_code/gf_vect_mul_test \
  126. erasure_code/gf_vect_mul_base_test \
  127. erasure_code/gf_vect_dot_prod_base_test \
  128. erasure_code/gf_vect_dot_prod_test
  129. perf_tests32 += erasure_code/gf_vect_mul_perf \
  130. erasure_code/gf_vect_dot_prod_perf \
  131. erasure_code/erasure_code_perf \
  132. erasure_code/erasure_code_base_perf \
  133. erasure_code/gf_vect_dot_prod_1tbl
  134. src_include += -I $(srcdir)/erasure_code
  135. extern_hdrs += include/erasure_code.h \
  136. include/gf_vect_mul.h
  137. other_src += erasure_code/ec_base.h \
  138. include/multibinary.asm \
  139. include/reg_sizes.asm
  140. check_tests += erasure_code/gf_vect_mul_test \
  141. erasure_code/erasure_code_test \
  142. erasure_code/gf_inverse_test \
  143. erasure_code/erasure_code_update_test
  144. unit_tests += \
  145. erasure_code/gf_vect_mul_base_test \
  146. erasure_code/gf_vect_dot_prod_base_test \
  147. erasure_code/gf_vect_dot_prod_test \
  148. erasure_code/gf_vect_mad_test \
  149. erasure_code/erasure_code_base_test
  150. perf_tests += erasure_code/gf_vect_mul_perf \
  151. erasure_code/gf_vect_dot_prod_perf \
  152. erasure_code/gf_vect_dot_prod_1tbl \
  153. erasure_code/erasure_code_perf \
  154. erasure_code/erasure_code_base_perf \
  155. erasure_code/erasure_code_update_perf
  156. other_tests += erasure_code/gen_rs_matrix_limits
  157. other_src += include/test.h