xref: /isa-l/erasure_code/Makefile.am (revision a53a20ea2aa4d61e7f3ab0877719e2163bd46c52)
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