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 30include erasure_code/aarch64/Makefile.am 31 32include erasure_code/ppc64le/Makefile.am 33 34lsrc += erasure_code/ec_base.c 35 36lsrc_base_aliases += erasure_code/ec_base_aliases.c 37lsrc_x86_64 += \ 38 erasure_code/ec_highlevel_func.c \ 39 erasure_code/gf_vect_mul_sse.asm \ 40 erasure_code/gf_vect_mul_avx.asm \ 41 erasure_code/gf_vect_dot_prod_sse.asm \ 42 erasure_code/gf_vect_dot_prod_avx.asm \ 43 erasure_code/gf_vect_dot_prod_avx2.asm \ 44 erasure_code/gf_2vect_dot_prod_sse.asm \ 45 erasure_code/gf_3vect_dot_prod_sse.asm \ 46 erasure_code/gf_4vect_dot_prod_sse.asm \ 47 erasure_code/gf_5vect_dot_prod_sse.asm \ 48 erasure_code/gf_6vect_dot_prod_sse.asm \ 49 erasure_code/gf_2vect_dot_prod_avx.asm \ 50 erasure_code/gf_3vect_dot_prod_avx.asm \ 51 erasure_code/gf_4vect_dot_prod_avx.asm \ 52 erasure_code/gf_5vect_dot_prod_avx.asm \ 53 erasure_code/gf_6vect_dot_prod_avx.asm \ 54 erasure_code/gf_2vect_dot_prod_avx2.asm \ 55 erasure_code/gf_3vect_dot_prod_avx2.asm \ 56 erasure_code/gf_4vect_dot_prod_avx2.asm \ 57 erasure_code/gf_5vect_dot_prod_avx2.asm \ 58 erasure_code/gf_6vect_dot_prod_avx2.asm \ 59 erasure_code/gf_vect_mad_sse.asm \ 60 erasure_code/gf_2vect_mad_sse.asm \ 61 erasure_code/gf_3vect_mad_sse.asm \ 62 erasure_code/gf_4vect_mad_sse.asm \ 63 erasure_code/gf_5vect_mad_sse.asm \ 64 erasure_code/gf_6vect_mad_sse.asm \ 65 erasure_code/gf_vect_mad_avx.asm \ 66 erasure_code/gf_2vect_mad_avx.asm \ 67 erasure_code/gf_3vect_mad_avx.asm \ 68 erasure_code/gf_4vect_mad_avx.asm \ 69 erasure_code/gf_5vect_mad_avx.asm \ 70 erasure_code/gf_6vect_mad_avx.asm \ 71 erasure_code/gf_vect_mad_avx2.asm \ 72 erasure_code/gf_2vect_mad_avx2.asm \ 73 erasure_code/gf_3vect_mad_avx2.asm \ 74 erasure_code/gf_4vect_mad_avx2.asm \ 75 erasure_code/gf_5vect_mad_avx2.asm \ 76 erasure_code/gf_6vect_mad_avx2.asm \ 77 erasure_code/ec_multibinary.asm 78 79#if HAVE_AVX512 80lsrc_x86_64 += \ 81 erasure_code/gf_vect_mad_avx2_gfni.asm \ 82 erasure_code/gf_2vect_mad_avx2_gfni.asm \ 83 erasure_code/gf_3vect_mad_avx2_gfni.asm \ 84 erasure_code/gf_4vect_mad_avx2_gfni.asm \ 85 erasure_code/gf_5vect_mad_avx2_gfni.asm \ 86 erasure_code/gf_vect_dot_prod_avx512.asm \ 87 erasure_code/gf_2vect_dot_prod_avx512.asm \ 88 erasure_code/gf_3vect_dot_prod_avx512.asm \ 89 erasure_code/gf_4vect_dot_prod_avx512.asm \ 90 erasure_code/gf_5vect_dot_prod_avx512.asm \ 91 erasure_code/gf_6vect_dot_prod_avx512.asm \ 92 erasure_code/gf_vect_dot_prod_avx512_gfni.asm \ 93 erasure_code/gf_vect_dot_prod_avx2_gfni.asm \ 94 erasure_code/gf_2vect_dot_prod_avx2_gfni.asm \ 95 erasure_code/gf_3vect_dot_prod_avx2_gfni.asm \ 96 erasure_code/gf_2vect_dot_prod_avx512_gfni.asm \ 97 erasure_code/gf_3vect_dot_prod_avx512_gfni.asm \ 98 erasure_code/gf_4vect_dot_prod_avx512_gfni.asm \ 99 erasure_code/gf_5vect_dot_prod_avx512_gfni.asm \ 100 erasure_code/gf_6vect_dot_prod_avx512_gfni.asm \ 101 erasure_code/gf_vect_mad_avx512.asm \ 102 erasure_code/gf_2vect_mad_avx512.asm \ 103 erasure_code/gf_3vect_mad_avx512.asm \ 104 erasure_code/gf_4vect_mad_avx512.asm \ 105 erasure_code/gf_5vect_mad_avx512.asm \ 106 erasure_code/gf_6vect_mad_avx512.asm \ 107 erasure_code/gf_vect_mad_avx512_gfni.asm \ 108 erasure_code/gf_2vect_mad_avx512_gfni.asm \ 109 erasure_code/gf_3vect_mad_avx512_gfni.asm \ 110 erasure_code/gf_4vect_mad_avx512_gfni.asm \ 111 erasure_code/gf_5vect_mad_avx512_gfni.asm \ 112 erasure_code/gf_6vect_mad_avx512_gfni.asm 113 114lsrc_x86_32 += \ 115 erasure_code/ec_highlevel_func.c \ 116 erasure_code/ec_multibinary.asm \ 117 erasure_code/gf_vect_dot_prod_avx.asm \ 118 erasure_code/gf_2vect_dot_prod_avx.asm \ 119 erasure_code/gf_3vect_dot_prod_avx.asm \ 120 erasure_code/gf_4vect_dot_prod_avx.asm \ 121 erasure_code/gf_vect_dot_prod_sse.asm \ 122 erasure_code/gf_2vect_dot_prod_sse.asm \ 123 erasure_code/gf_3vect_dot_prod_sse.asm \ 124 erasure_code/gf_4vect_dot_prod_sse.asm \ 125 erasure_code/gf_vect_dot_prod_avx2.asm \ 126 erasure_code/gf_2vect_dot_prod_avx2.asm \ 127 erasure_code/gf_3vect_dot_prod_avx2.asm \ 128 erasure_code/gf_4vect_dot_prod_avx2.asm 129 130unit_tests32 += erasure_code/erasure_code_base_test \ 131 erasure_code/erasure_code_test \ 132 erasure_code/gf_vect_mul_test \ 133 erasure_code/gf_vect_mul_base_test \ 134 erasure_code/gf_vect_dot_prod_base_test \ 135 erasure_code/gf_vect_dot_prod_test 136 137perf_tests32 += erasure_code/gf_vect_mul_perf \ 138 erasure_code/gf_vect_dot_prod_perf \ 139 erasure_code/erasure_code_perf \ 140 erasure_code/erasure_code_base_perf \ 141 erasure_code/gf_vect_dot_prod_1tbl 142 143src_include += -I $(srcdir)/erasure_code 144extern_hdrs += include/erasure_code.h \ 145 include/gf_vect_mul.h 146 147other_src += erasure_code/ec_base.h \ 148 include/multibinary.asm \ 149 include/reg_sizes.asm 150 151check_tests += erasure_code/gf_vect_mul_test \ 152 erasure_code/erasure_code_test \ 153 erasure_code/gf_inverse_test \ 154 erasure_code/erasure_code_update_test 155 156unit_tests += \ 157 erasure_code/gf_vect_mul_base_test \ 158 erasure_code/gf_vect_dot_prod_base_test \ 159 erasure_code/gf_vect_dot_prod_test \ 160 erasure_code/gf_vect_mad_test \ 161 erasure_code/erasure_code_base_test 162 163perf_tests += erasure_code/gf_vect_mul_perf \ 164 erasure_code/gf_vect_dot_prod_perf \ 165 erasure_code/gf_vect_dot_prod_1tbl \ 166 erasure_code/erasure_code_perf \ 167 erasure_code/erasure_code_base_perf \ 168 erasure_code/erasure_code_update_perf 169 170other_tests += erasure_code/gen_rs_matrix_limits 171 172other_src += include/test.h 173