1######################################################################## 2# Copyright(c) 2011-2017 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 30lsrc += erasure_code/ec_base.c 31 32lsrc_base_aliases += erasure_code/ec_base_aliases.c 33 34lsrc_x86_64 += \ 35 erasure_code/ec_highlevel_func.c \ 36 erasure_code/gf_vect_mul_sse.asm \ 37 erasure_code/gf_vect_mul_avx.asm \ 38 erasure_code/gf_vect_dot_prod_sse.asm \ 39 erasure_code/gf_vect_dot_prod_avx.asm \ 40 erasure_code/gf_vect_dot_prod_avx2.asm \ 41 erasure_code/gf_2vect_dot_prod_sse.asm \ 42 erasure_code/gf_3vect_dot_prod_sse.asm \ 43 erasure_code/gf_4vect_dot_prod_sse.asm \ 44 erasure_code/gf_5vect_dot_prod_sse.asm \ 45 erasure_code/gf_6vect_dot_prod_sse.asm \ 46 erasure_code/gf_2vect_dot_prod_avx.asm \ 47 erasure_code/gf_3vect_dot_prod_avx.asm \ 48 erasure_code/gf_4vect_dot_prod_avx.asm \ 49 erasure_code/gf_5vect_dot_prod_avx.asm \ 50 erasure_code/gf_6vect_dot_prod_avx.asm \ 51 erasure_code/gf_2vect_dot_prod_avx2.asm \ 52 erasure_code/gf_3vect_dot_prod_avx2.asm \ 53 erasure_code/gf_4vect_dot_prod_avx2.asm \ 54 erasure_code/gf_5vect_dot_prod_avx2.asm \ 55 erasure_code/gf_6vect_dot_prod_avx2.asm \ 56 erasure_code/gf_vect_mad_sse.asm \ 57 erasure_code/gf_2vect_mad_sse.asm \ 58 erasure_code/gf_3vect_mad_sse.asm \ 59 erasure_code/gf_4vect_mad_sse.asm \ 60 erasure_code/gf_5vect_mad_sse.asm \ 61 erasure_code/gf_6vect_mad_sse.asm \ 62 erasure_code/gf_vect_mad_avx.asm \ 63 erasure_code/gf_2vect_mad_avx.asm \ 64 erasure_code/gf_3vect_mad_avx.asm \ 65 erasure_code/gf_4vect_mad_avx.asm \ 66 erasure_code/gf_5vect_mad_avx.asm \ 67 erasure_code/gf_6vect_mad_avx.asm \ 68 erasure_code/gf_vect_mad_avx2.asm \ 69 erasure_code/gf_2vect_mad_avx2.asm \ 70 erasure_code/gf_3vect_mad_avx2.asm \ 71 erasure_code/gf_4vect_mad_avx2.asm \ 72 erasure_code/gf_5vect_mad_avx2.asm \ 73 erasure_code/gf_6vect_mad_avx2.asm \ 74 erasure_code/ec_multibinary.asm 75 76#if HAVE_AVX512 77lsrc_x86_64 += \ 78 erasure_code/gf_vect_dot_prod_avx512.asm \ 79 erasure_code/gf_2vect_dot_prod_avx512.asm \ 80 erasure_code/gf_3vect_dot_prod_avx512.asm \ 81 erasure_code/gf_4vect_dot_prod_avx512.asm \ 82 erasure_code/gf_vect_mad_avx512.asm \ 83 erasure_code/gf_2vect_mad_avx512.asm \ 84 erasure_code/gf_3vect_mad_avx512.asm \ 85 erasure_code/gf_4vect_mad_avx512.asm 86 87lsrc_x86_32 += \ 88 erasure_code/ec_highlevel_func.c \ 89 erasure_code/ec_multibinary.asm \ 90 erasure_code/gf_vect_dot_prod_avx.asm \ 91 erasure_code/gf_2vect_dot_prod_avx.asm \ 92 erasure_code/gf_3vect_dot_prod_avx.asm \ 93 erasure_code/gf_4vect_dot_prod_avx.asm \ 94 erasure_code/gf_vect_dot_prod_sse.asm \ 95 erasure_code/gf_2vect_dot_prod_sse.asm \ 96 erasure_code/gf_3vect_dot_prod_sse.asm \ 97 erasure_code/gf_4vect_dot_prod_sse.asm \ 98 erasure_code/gf_vect_dot_prod_avx2.asm \ 99 erasure_code/gf_2vect_dot_prod_avx2.asm \ 100 erasure_code/gf_3vect_dot_prod_avx2.asm \ 101 erasure_code/gf_4vect_dot_prod_avx2.asm 102 103unit_tests32 += erasure_code/erasure_code_base_test \ 104 erasure_code/erasure_code_test \ 105 erasure_code/gf_vect_mul_test \ 106 erasure_code/gf_vect_mul_base_test \ 107 erasure_code/gf_vect_dot_prod_base_test \ 108 erasure_code/gf_vect_dot_prod_test 109 110perf_tests32 += erasure_code/gf_vect_mul_perf \ 111 erasure_code/gf_vect_dot_prod_perf \ 112 erasure_code/erasure_code_perf \ 113 erasure_code/erasure_code_base_perf \ 114 erasure_code/gf_vect_dot_prod_1tbl 115 116src_include += -I $(srcdir)/erasure_code 117extern_hdrs += include/erasure_code.h \ 118 include/gf_vect_mul.h 119 120other_src += erasure_code/ec_base.h \ 121 include/multibinary.asm \ 122 include/reg_sizes.asm 123 124check_tests += erasure_code/gf_vect_mul_test \ 125 erasure_code/erasure_code_test \ 126 erasure_code/gf_inverse_test \ 127 erasure_code/erasure_code_update_test 128 129unit_tests += \ 130 erasure_code/gf_vect_mul_base_test \ 131 erasure_code/gf_vect_dot_prod_base_test \ 132 erasure_code/gf_vect_dot_prod_test \ 133 erasure_code/gf_vect_mad_test \ 134 erasure_code/erasure_code_base_test 135 136perf_tests += erasure_code/gf_vect_mul_perf \ 137 erasure_code/gf_vect_dot_prod_perf \ 138 erasure_code/gf_vect_dot_prod_1tbl \ 139 erasure_code/gf_vect_mad_perf \ 140 erasure_code/erasure_code_perf \ 141 erasure_code/erasure_code_base_perf \ 142 erasure_code/erasure_code_update_perf 143 144other_tests += \ 145 erasure_code/gen_rs_matrix_limits \ 146 erasure_code/gf_2vect_dot_prod_sse_test \ 147 erasure_code/gf_3vect_dot_prod_sse_test \ 148 erasure_code/gf_4vect_dot_prod_sse_test \ 149 erasure_code/gf_5vect_dot_prod_sse_test \ 150 erasure_code/gf_6vect_dot_prod_sse_test 151 152other_src += include/test.h \ 153 include/types.h 154