xref: /aosp_15_r20/external/pytorch/third_party/sleef.BUILD (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Workerload("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
2*da0073e9SAndroid Build Coastguard Workerload("@pytorch//third_party:sleef.bzl", "sleef_cc_library")
3*da0073e9SAndroid Build Coastguard Worker
4*da0073e9SAndroid Build Coastguard WorkerSLEEF_COPTS = [
5*da0073e9SAndroid Build Coastguard Worker    "-DHAVE_MALLOC_USABLE_SIZE=1",
6*da0073e9SAndroid Build Coastguard Worker    "-DHAVE_MMAP=1",
7*da0073e9SAndroid Build Coastguard Worker    "-DHAVE_SHM_OPEN=1",
8*da0073e9SAndroid Build Coastguard Worker    "-DHAVE_SHM_UNLINK=1",
9*da0073e9SAndroid Build Coastguard Worker    "-DIDEEP_USE_MKL",
10*da0073e9SAndroid Build Coastguard Worker    "-DDNNL_CPU_RUNTIME=TBB",
11*da0073e9SAndroid Build Coastguard Worker    "-DONNX_ML=1",
12*da0073e9SAndroid Build Coastguard Worker    "-DONNX_NAMESPACE=onnx",
13*da0073e9SAndroid Build Coastguard Worker    "-D_FILE_OFFSET_BITS=64",
14*da0073e9SAndroid Build Coastguard Worker    "-ffp-contract=off",
15*da0073e9SAndroid Build Coastguard Worker    "-fno-math-errno",
16*da0073e9SAndroid Build Coastguard Worker    "-fno-trapping-math",
17*da0073e9SAndroid Build Coastguard Worker    "-DCAFFE2_USE_GLOO",
18*da0073e9SAndroid Build Coastguard Worker    "-std=gnu99",
19*da0073e9SAndroid Build Coastguard Worker]
20*da0073e9SAndroid Build Coastguard Worker
21*da0073e9SAndroid Build Coastguard WorkerSLEEF_COMMON_TARGET_COPTS = [
22*da0073e9SAndroid Build Coastguard Worker    "-DSLEEF_STATIC_LIBS=1",
23*da0073e9SAndroid Build Coastguard Worker    "-DENABLE_ALIAS=1",
24*da0073e9SAndroid Build Coastguard Worker]
25*da0073e9SAndroid Build Coastguard Worker
26*da0073e9SAndroid Build Coastguard WorkerSLEEF_PRIVATE_HEADERS = glob([
27*da0073e9SAndroid Build Coastguard Worker    "build/include/*.h",
28*da0073e9SAndroid Build Coastguard Worker    "src/arch/*.h",
29*da0073e9SAndroid Build Coastguard Worker    "src/common/*.h",
30*da0073e9SAndroid Build Coastguard Worker    "src/libm/*.h",
31*da0073e9SAndroid Build Coastguard Worker    "src/libm/include/*.h",
32*da0073e9SAndroid Build Coastguard Worker])
33*da0073e9SAndroid Build Coastguard Worker
34*da0073e9SAndroid Build Coastguard WorkerSLEEF_PUBLIC_HEADERS = [
35*da0073e9SAndroid Build Coastguard Worker    ":sleef_h",
36*da0073e9SAndroid Build Coastguard Worker]
37*da0073e9SAndroid Build Coastguard Worker
38*da0073e9SAndroid Build Coastguard WorkerSLEEF_PRIVATE_INCLUDES = [
39*da0073e9SAndroid Build Coastguard Worker    "-Iexternal/sleef/src/arch",
40*da0073e9SAndroid Build Coastguard Worker    "-Iexternal/sleef/src/common",
41*da0073e9SAndroid Build Coastguard Worker    "-Iexternal/sleef/src/libm",
42*da0073e9SAndroid Build Coastguard Worker]
43*da0073e9SAndroid Build Coastguard Worker
44*da0073e9SAndroid Build Coastguard WorkerSLEEF_PUBLIC_INCLUDES = [
45*da0073e9SAndroid Build Coastguard Worker    "build/include",
46*da0073e9SAndroid Build Coastguard Worker]
47*da0073e9SAndroid Build Coastguard Worker
48*da0073e9SAndroid Build Coastguard WorkerSLEEF_VISIBILITY = [
49*da0073e9SAndroid Build Coastguard Worker    "//visibility:public",
50*da0073e9SAndroid Build Coastguard Worker]
51*da0073e9SAndroid Build Coastguard Worker
52*da0073e9SAndroid Build Coastguard Workercc_binary(
53*da0073e9SAndroid Build Coastguard Worker    name = "mkalias",
54*da0073e9SAndroid Build Coastguard Worker    srcs = [
55*da0073e9SAndroid Build Coastguard Worker        "src/libm/funcproto.h",
56*da0073e9SAndroid Build Coastguard Worker        "src/libm/mkalias.c",
57*da0073e9SAndroid Build Coastguard Worker    ],
58*da0073e9SAndroid Build Coastguard Worker)
59*da0073e9SAndroid Build Coastguard Worker
60*da0073e9SAndroid Build Coastguard Workergenrule(
61*da0073e9SAndroid Build Coastguard Worker    name = "alias_avx512f_h",
62*da0073e9SAndroid Build Coastguard Worker    outs = ["alias_avx512f.h"],
63*da0073e9SAndroid Build Coastguard Worker    cmd = "{ " + "; ".join([
64*da0073e9SAndroid Build Coastguard Worker        "$(location :mkalias) -16 __m512 __m512i e avx512f",
65*da0073e9SAndroid Build Coastguard Worker        "$(location :mkalias) 8 __m512d __m256i e avx512f",
66*da0073e9SAndroid Build Coastguard Worker    ]) + "; } > $@",
67*da0073e9SAndroid Build Coastguard Worker    tools = [":mkalias"],
68*da0073e9SAndroid Build Coastguard Worker)
69*da0073e9SAndroid Build Coastguard Worker
70*da0073e9SAndroid Build Coastguard Workercc_binary(
71*da0073e9SAndroid Build Coastguard Worker    name = "mkdisp",
72*da0073e9SAndroid Build Coastguard Worker    srcs = [
73*da0073e9SAndroid Build Coastguard Worker        "src/libm/funcproto.h",
74*da0073e9SAndroid Build Coastguard Worker        "src/libm/mkdisp.c",
75*da0073e9SAndroid Build Coastguard Worker    ],
76*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_COPTS,
77*da0073e9SAndroid Build Coastguard Worker)
78*da0073e9SAndroid Build Coastguard Worker
79*da0073e9SAndroid Build Coastguard Workergenrule(
80*da0073e9SAndroid Build Coastguard Worker    name = "dispavx_c",
81*da0073e9SAndroid Build Coastguard Worker    srcs = ["src/libm/dispavx.c.org"],
82*da0073e9SAndroid Build Coastguard Worker    outs = ["dispavx.c"],
83*da0073e9SAndroid Build Coastguard Worker    cmd = "{ cat $(location src/libm/dispavx.c.org); $(location :mkdisp) 4 8 __m256d __m256 __m128i avx fma4 avx2; } > $@",
84*da0073e9SAndroid Build Coastguard Worker    tools = [":mkdisp"],
85*da0073e9SAndroid Build Coastguard Worker)
86*da0073e9SAndroid Build Coastguard Worker
87*da0073e9SAndroid Build Coastguard Workergenrule(
88*da0073e9SAndroid Build Coastguard Worker    name = "dispsse_c",
89*da0073e9SAndroid Build Coastguard Worker    srcs = ["src/libm/dispsse.c.org"],
90*da0073e9SAndroid Build Coastguard Worker    outs = ["dispsse.c"],
91*da0073e9SAndroid Build Coastguard Worker    cmd = "{ cat $(location src/libm/dispsse.c.org); $(location :mkdisp) 2 4 __m128d __m128 __m128i sse2 sse4 avx2128; } > $@",
92*da0073e9SAndroid Build Coastguard Worker    tools = [":mkdisp"],
93*da0073e9SAndroid Build Coastguard Worker)
94*da0073e9SAndroid Build Coastguard Worker
95*da0073e9SAndroid Build Coastguard Workercc_binary(
96*da0073e9SAndroid Build Coastguard Worker    name = "mkrename",
97*da0073e9SAndroid Build Coastguard Worker    srcs = [
98*da0073e9SAndroid Build Coastguard Worker        "src/libm/funcproto.h",
99*da0073e9SAndroid Build Coastguard Worker        "src/libm/mkrename.c",
100*da0073e9SAndroid Build Coastguard Worker    ],
101*da0073e9SAndroid Build Coastguard Worker)
102*da0073e9SAndroid Build Coastguard Worker
103*da0073e9SAndroid Build Coastguard Workergenrule(
104*da0073e9SAndroid Build Coastguard Worker    name = "renameavx_h",
105*da0073e9SAndroid Build Coastguard Worker    outs = ["renameavx.h"],
106*da0073e9SAndroid Build Coastguard Worker    cmd = "$(location :mkrename) cinz_ 4 8 avx > $@",
107*da0073e9SAndroid Build Coastguard Worker    tools = [":mkrename"],
108*da0073e9SAndroid Build Coastguard Worker)
109*da0073e9SAndroid Build Coastguard Worker
110*da0073e9SAndroid Build Coastguard Workergenrule(
111*da0073e9SAndroid Build Coastguard Worker    name = "renameavx2_h",
112*da0073e9SAndroid Build Coastguard Worker    outs = ["renameavx2.h"],
113*da0073e9SAndroid Build Coastguard Worker    cmd = "$(location :mkrename) finz_ 4 8 avx2 > $@",
114*da0073e9SAndroid Build Coastguard Worker    tools = [":mkrename"],
115*da0073e9SAndroid Build Coastguard Worker)
116*da0073e9SAndroid Build Coastguard Worker
117*da0073e9SAndroid Build Coastguard Workergenrule(
118*da0073e9SAndroid Build Coastguard Worker    name = "renameavx2128_h",
119*da0073e9SAndroid Build Coastguard Worker    outs = ["renameavx2128.h"],
120*da0073e9SAndroid Build Coastguard Worker    cmd = "$(location :mkrename) finz_ 2 4 avx2128 > $@",
121*da0073e9SAndroid Build Coastguard Worker    tools = [":mkrename"],
122*da0073e9SAndroid Build Coastguard Worker)
123*da0073e9SAndroid Build Coastguard Worker
124*da0073e9SAndroid Build Coastguard Workergenrule(
125*da0073e9SAndroid Build Coastguard Worker    name = "renameavx512f_h",
126*da0073e9SAndroid Build Coastguard Worker    outs = ["renameavx512f.h"],
127*da0073e9SAndroid Build Coastguard Worker    cmd = "$(location :mkrename) finz_ 8 16 avx512f > $@",
128*da0073e9SAndroid Build Coastguard Worker    tools = [":mkrename"],
129*da0073e9SAndroid Build Coastguard Worker)
130*da0073e9SAndroid Build Coastguard Worker
131*da0073e9SAndroid Build Coastguard Workergenrule(
132*da0073e9SAndroid Build Coastguard Worker    name = "renameavx512fnofma_h",
133*da0073e9SAndroid Build Coastguard Worker    outs = ["renameavx512fnofma.h"],
134*da0073e9SAndroid Build Coastguard Worker    cmd = "$(location :mkrename) cinz_ 8 16 avx512fnofma > $@",
135*da0073e9SAndroid Build Coastguard Worker    tools = [":mkrename"],
136*da0073e9SAndroid Build Coastguard Worker)
137*da0073e9SAndroid Build Coastguard Worker
138*da0073e9SAndroid Build Coastguard Workergenrule(
139*da0073e9SAndroid Build Coastguard Worker    name = "renamefma4_h",
140*da0073e9SAndroid Build Coastguard Worker    outs = ["renamefma4.h"],
141*da0073e9SAndroid Build Coastguard Worker    cmd = "$(location :mkrename) finz_ 4 8 fma4 > $@",
142*da0073e9SAndroid Build Coastguard Worker    tools = [":mkrename"],
143*da0073e9SAndroid Build Coastguard Worker)
144*da0073e9SAndroid Build Coastguard Worker
145*da0073e9SAndroid Build Coastguard Workergenrule(
146*da0073e9SAndroid Build Coastguard Worker    name = "renamepurec_scalar_h",
147*da0073e9SAndroid Build Coastguard Worker    outs = ["renamepurec_scalar.h"],
148*da0073e9SAndroid Build Coastguard Worker    cmd = "$(location :mkrename) cinz_ 1 1 purec > $@",
149*da0073e9SAndroid Build Coastguard Worker    tools = [":mkrename"],
150*da0073e9SAndroid Build Coastguard Worker)
151*da0073e9SAndroid Build Coastguard Worker
152*da0073e9SAndroid Build Coastguard Workergenrule(
153*da0073e9SAndroid Build Coastguard Worker    name = "renamepurecfma_scalar_h",
154*da0073e9SAndroid Build Coastguard Worker    outs = ["renamepurecfma_scalar.h"],
155*da0073e9SAndroid Build Coastguard Worker    cmd = "$(location :mkrename) finz_ 1 1 purecfma > $@",
156*da0073e9SAndroid Build Coastguard Worker    tools = [":mkrename"],
157*da0073e9SAndroid Build Coastguard Worker)
158*da0073e9SAndroid Build Coastguard Worker
159*da0073e9SAndroid Build Coastguard Workergenrule(
160*da0073e9SAndroid Build Coastguard Worker    name = "renamesse2_h",
161*da0073e9SAndroid Build Coastguard Worker    outs = ["renamesse2.h"],
162*da0073e9SAndroid Build Coastguard Worker    cmd = "$(location :mkrename) cinz_ 2 4 sse2 > $@",
163*da0073e9SAndroid Build Coastguard Worker    tools = [":mkrename"],
164*da0073e9SAndroid Build Coastguard Worker)
165*da0073e9SAndroid Build Coastguard Worker
166*da0073e9SAndroid Build Coastguard Workergenrule(
167*da0073e9SAndroid Build Coastguard Worker    name = "renamesse4_h",
168*da0073e9SAndroid Build Coastguard Worker    outs = ["renamesse4.h"],
169*da0073e9SAndroid Build Coastguard Worker    cmd = "$(location :mkrename) cinz_ 2 4 sse4 > $@",
170*da0073e9SAndroid Build Coastguard Worker    tools = [":mkrename"],
171*da0073e9SAndroid Build Coastguard Worker)
172*da0073e9SAndroid Build Coastguard Worker
173*da0073e9SAndroid Build Coastguard Workergenrule(
174*da0073e9SAndroid Build Coastguard Worker    name = "sleef_h",
175*da0073e9SAndroid Build Coastguard Worker    srcs = [
176*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleeflibm_header.h.org.in",
177*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleeflibm_footer.h.org",
178*da0073e9SAndroid Build Coastguard Worker    ],
179*da0073e9SAndroid Build Coastguard Worker    outs = ["build/include/sleef.h"],
180*da0073e9SAndroid Build Coastguard Worker    cmd = "{ " + "; ".join([
181*da0073e9SAndroid Build Coastguard Worker        "cat $(location src/libm/sleeflibm_header.h.org.in)",
182*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) cinz_ 2 4 __m128d __m128 __m128i __m128i __SSE2__",
183*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) cinz_ 2 4 __m128d __m128 __m128i __m128i __SSE2__ sse2",
184*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) cinz_ 2 4 __m128d __m128 __m128i __m128i __SSE2__ sse4",
185*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) cinz_ 4 8 __m256d __m256 __m128i \"struct { __m128i x, y; }\" __AVX__",
186*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) cinz_ 4 8 __m256d __m256 __m128i \"struct { __m128i x, y; }\" __AVX__ avx",
187*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) finz_ 4 8 __m256d __m256 __m128i \"struct { __m128i x, y; }\" __AVX__ fma4",
188*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) finz_ 4 8 __m256d __m256 __m128i __m256i __AVX__ avx2",
189*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) finz_ 2 4 __m128d __m128 __m128i __m128i __SSE2__ avx2128",
190*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) finz_ 8 16 __m512d __m512 __m256i __m512i __AVX512F__",
191*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) finz_ 8 16 __m512d __m512 __m256i __m512i __AVX512F__ avx512f",
192*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) cinz_ 8 16 __m512d __m512 __m256i __m512i __AVX512F__ avx512fnofma",
193*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) cinz_ 1 1 double float int32_t int32_t __STDC__ purec",
194*da0073e9SAndroid Build Coastguard Worker        "$(location :mkrename) finz_ 1 1 double float int32_t int32_t FP_FAST_FMA purecfma",
195*da0073e9SAndroid Build Coastguard Worker        "cat $(location src/libm/sleeflibm_footer.h.org)",
196*da0073e9SAndroid Build Coastguard Worker    ]) + "; } > $@",
197*da0073e9SAndroid Build Coastguard Worker    tools = [":mkrename"],
198*da0073e9SAndroid Build Coastguard Worker)
199*da0073e9SAndroid Build Coastguard Worker
200*da0073e9SAndroid Build Coastguard Workercc_library(
201*da0073e9SAndroid Build Coastguard Worker    name = "sleef",
202*da0073e9SAndroid Build Coastguard Worker    srcs = [
203*da0073e9SAndroid Build Coastguard Worker        "src/libm/rempitab.c",
204*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefdp.c",
205*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsp.c",
206*da0073e9SAndroid Build Coastguard Worker    ],
207*da0073e9SAndroid Build Coastguard Worker    hdrs = SLEEF_PUBLIC_HEADERS,
208*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
209*da0073e9SAndroid Build Coastguard Worker        "-DDORENAME=1",
210*da0073e9SAndroid Build Coastguard Worker        "-DENABLEFLOAT128=1",
211*da0073e9SAndroid Build Coastguard Worker        "-Wno-unused-result",
212*da0073e9SAndroid Build Coastguard Worker    ],
213*da0073e9SAndroid Build Coastguard Worker    includes = SLEEF_PUBLIC_INCLUDES,
214*da0073e9SAndroid Build Coastguard Worker    # -lgcc resolves
215*da0073e9SAndroid Build Coastguard Worker    # U __addtf3
216*da0073e9SAndroid Build Coastguard Worker    # U __eqtf2
217*da0073e9SAndroid Build Coastguard Worker    # U __fixtfdi
218*da0073e9SAndroid Build Coastguard Worker    # U __floatditf
219*da0073e9SAndroid Build Coastguard Worker    # U __gttf2
220*da0073e9SAndroid Build Coastguard Worker    # U __lttf2
221*da0073e9SAndroid Build Coastguard Worker    # U __multf3
222*da0073e9SAndroid Build Coastguard Worker    # U __subtf3
223*da0073e9SAndroid Build Coastguard Worker    # in bazel-bin/external/sleef/_objs/sleef/sleefqp.pic.o
224*da0073e9SAndroid Build Coastguard Worker    linkopts = [
225*da0073e9SAndroid Build Coastguard Worker        "-lgcc",
226*da0073e9SAndroid Build Coastguard Worker    ],
227*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
228*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
229*da0073e9SAndroid Build Coastguard Worker    # The purpose of the lists in deps is to keep related pairs of
230*da0073e9SAndroid Build Coastguard Worker    # libraries together. In particular, each pair that contains a *det*
231*da0073e9SAndroid Build Coastguard Worker    # library originates with a sleef_cc_library().
232*da0073e9SAndroid Build Coastguard Worker    deps = [
233*da0073e9SAndroid Build Coastguard Worker        ":common",
234*da0073e9SAndroid Build Coastguard Worker        ":dispavx",
235*da0073e9SAndroid Build Coastguard Worker        ":dispsse",
236*da0073e9SAndroid Build Coastguard Worker    ] + [
237*da0073e9SAndroid Build Coastguard Worker        ":sleefavx",
238*da0073e9SAndroid Build Coastguard Worker        ":sleefdetavx",
239*da0073e9SAndroid Build Coastguard Worker    ] + [
240*da0073e9SAndroid Build Coastguard Worker        ":sleefavx2",
241*da0073e9SAndroid Build Coastguard Worker        ":sleefdetavx2",
242*da0073e9SAndroid Build Coastguard Worker    ] + [
243*da0073e9SAndroid Build Coastguard Worker        ":sleefavx2128",
244*da0073e9SAndroid Build Coastguard Worker        ":sleefdetavx2128",
245*da0073e9SAndroid Build Coastguard Worker    ] + [
246*da0073e9SAndroid Build Coastguard Worker        ":sleefavx512f",
247*da0073e9SAndroid Build Coastguard Worker        ":sleefdetavx512f",
248*da0073e9SAndroid Build Coastguard Worker    ] + [
249*da0073e9SAndroid Build Coastguard Worker        ":sleefavx512fnofma",
250*da0073e9SAndroid Build Coastguard Worker        ":sleefdetavx512fnofma",
251*da0073e9SAndroid Build Coastguard Worker    ] + [
252*da0073e9SAndroid Build Coastguard Worker        ":sleeffma4",
253*da0073e9SAndroid Build Coastguard Worker        ":sleefdetfma4",
254*da0073e9SAndroid Build Coastguard Worker    ] + [
255*da0073e9SAndroid Build Coastguard Worker        ":sleefsse2",
256*da0073e9SAndroid Build Coastguard Worker        ":sleefdetsse2",
257*da0073e9SAndroid Build Coastguard Worker    ] + [
258*da0073e9SAndroid Build Coastguard Worker        ":sleefsse4",
259*da0073e9SAndroid Build Coastguard Worker        ":sleefdetsse4",
260*da0073e9SAndroid Build Coastguard Worker    ] + [
261*da0073e9SAndroid Build Coastguard Worker        ":sleefpurec_scalar",
262*da0073e9SAndroid Build Coastguard Worker        ":sleefdetpurec_scalar",
263*da0073e9SAndroid Build Coastguard Worker    ] + [
264*da0073e9SAndroid Build Coastguard Worker        ":sleefpurecfma_scalar",
265*da0073e9SAndroid Build Coastguard Worker        ":sleefdetpurecfma_scalar",
266*da0073e9SAndroid Build Coastguard Worker    ],
267*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
268*da0073e9SAndroid Build Coastguard Worker)
269*da0073e9SAndroid Build Coastguard Worker
270*da0073e9SAndroid Build Coastguard Workercc_library(
271*da0073e9SAndroid Build Coastguard Worker    name = "common",
272*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + [
273*da0073e9SAndroid Build Coastguard Worker        "src/common/common.c",
274*da0073e9SAndroid Build Coastguard Worker    ],
275*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + [
276*da0073e9SAndroid Build Coastguard Worker        "-Wno-unused-result",
277*da0073e9SAndroid Build Coastguard Worker    ],
278*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
279*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
280*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
281*da0073e9SAndroid Build Coastguard Worker)
282*da0073e9SAndroid Build Coastguard Worker
283*da0073e9SAndroid Build Coastguard Workercc_library(
284*da0073e9SAndroid Build Coastguard Worker    name = "dispavx",
285*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + SLEEF_PUBLIC_HEADERS + [
286*da0073e9SAndroid Build Coastguard Worker        ":dispavx_c",
287*da0073e9SAndroid Build Coastguard Worker    ],
288*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
289*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_AVX2=1",
290*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_FMA4=1",
291*da0073e9SAndroid Build Coastguard Worker        "-mavx",
292*da0073e9SAndroid Build Coastguard Worker    ],
293*da0073e9SAndroid Build Coastguard Worker    includes = SLEEF_PUBLIC_INCLUDES,
294*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
295*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
296*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
297*da0073e9SAndroid Build Coastguard Worker)
298*da0073e9SAndroid Build Coastguard Worker
299*da0073e9SAndroid Build Coastguard Workercc_library(
300*da0073e9SAndroid Build Coastguard Worker    name = "dispsse",
301*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + SLEEF_PUBLIC_HEADERS + [
302*da0073e9SAndroid Build Coastguard Worker        ":dispsse_c",
303*da0073e9SAndroid Build Coastguard Worker    ],
304*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
305*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_AVX2=1",
306*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_FMA4=1",
307*da0073e9SAndroid Build Coastguard Worker        "-msse2",
308*da0073e9SAndroid Build Coastguard Worker    ],
309*da0073e9SAndroid Build Coastguard Worker    includes = SLEEF_PUBLIC_INCLUDES,
310*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
311*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
312*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
313*da0073e9SAndroid Build Coastguard Worker)
314*da0073e9SAndroid Build Coastguard Worker
315*da0073e9SAndroid Build Coastguard Workersleef_cc_library(
316*da0073e9SAndroid Build Coastguard Worker    name = "sleefavx512f",
317*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + [
318*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimddp.c",
319*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimdsp.c",
320*da0073e9SAndroid Build Coastguard Worker        ":alias_avx512f_h",
321*da0073e9SAndroid Build Coastguard Worker        ":renameavx512f_h",
322*da0073e9SAndroid Build Coastguard Worker    ],
323*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
324*da0073e9SAndroid Build Coastguard Worker        "-DDORENAME=1",
325*da0073e9SAndroid Build Coastguard Worker        "-DALIAS_NO_EXT_SUFFIX=\\\"alias_avx512f.h\\\"",
326*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_AVX512F=1",
327*da0073e9SAndroid Build Coastguard Worker        "-mavx512f",
328*da0073e9SAndroid Build Coastguard Worker    ],
329*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
330*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
331*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
332*da0073e9SAndroid Build Coastguard Worker)
333*da0073e9SAndroid Build Coastguard Worker
334*da0073e9SAndroid Build Coastguard Workersleef_cc_library(
335*da0073e9SAndroid Build Coastguard Worker    name = "sleefavx512fnofma",
336*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + [
337*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimddp.c",
338*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimdsp.c",
339*da0073e9SAndroid Build Coastguard Worker        ":renameavx512fnofma_h",
340*da0073e9SAndroid Build Coastguard Worker    ],
341*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
342*da0073e9SAndroid Build Coastguard Worker        "-DDORENAME=1",
343*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_AVX512FNOFMA=1",
344*da0073e9SAndroid Build Coastguard Worker        "-mavx512f",
345*da0073e9SAndroid Build Coastguard Worker    ],
346*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
347*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
348*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
349*da0073e9SAndroid Build Coastguard Worker)
350*da0073e9SAndroid Build Coastguard Worker
351*da0073e9SAndroid Build Coastguard Workersleef_cc_library(
352*da0073e9SAndroid Build Coastguard Worker    name = "sleefavx",
353*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + [
354*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimddp.c",
355*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimdsp.c",
356*da0073e9SAndroid Build Coastguard Worker        ":renameavx_h",
357*da0073e9SAndroid Build Coastguard Worker    ],
358*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
359*da0073e9SAndroid Build Coastguard Worker        "-DDORENAME=1",
360*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_AVX=1",
361*da0073e9SAndroid Build Coastguard Worker        "-mavx",
362*da0073e9SAndroid Build Coastguard Worker    ],
363*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
364*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
365*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
366*da0073e9SAndroid Build Coastguard Worker)
367*da0073e9SAndroid Build Coastguard Worker
368*da0073e9SAndroid Build Coastguard Workersleef_cc_library(
369*da0073e9SAndroid Build Coastguard Worker    name = "sleefavx2",
370*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + [
371*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimddp.c",
372*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimdsp.c",
373*da0073e9SAndroid Build Coastguard Worker        ":renameavx2_h",
374*da0073e9SAndroid Build Coastguard Worker    ],
375*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
376*da0073e9SAndroid Build Coastguard Worker        "-DDORENAME=1",
377*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_AVX2=1",
378*da0073e9SAndroid Build Coastguard Worker        "-mavx2",
379*da0073e9SAndroid Build Coastguard Worker        "-mfma",
380*da0073e9SAndroid Build Coastguard Worker    ],
381*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
382*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
383*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
384*da0073e9SAndroid Build Coastguard Worker)
385*da0073e9SAndroid Build Coastguard Worker
386*da0073e9SAndroid Build Coastguard Workersleef_cc_library(
387*da0073e9SAndroid Build Coastguard Worker    name = "sleefavx2128",
388*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + [
389*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimddp.c",
390*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimdsp.c",
391*da0073e9SAndroid Build Coastguard Worker        ":renameavx2128_h",
392*da0073e9SAndroid Build Coastguard Worker    ],
393*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
394*da0073e9SAndroid Build Coastguard Worker        "-DDORENAME=1",
395*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_AVX2128=1",
396*da0073e9SAndroid Build Coastguard Worker        "-mavx2",
397*da0073e9SAndroid Build Coastguard Worker        "-mfma",
398*da0073e9SAndroid Build Coastguard Worker    ],
399*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
400*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
401*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
402*da0073e9SAndroid Build Coastguard Worker)
403*da0073e9SAndroid Build Coastguard Worker
404*da0073e9SAndroid Build Coastguard Workersleef_cc_library(
405*da0073e9SAndroid Build Coastguard Worker    name = "sleeffma4",
406*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + [
407*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimddp.c",
408*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimdsp.c",
409*da0073e9SAndroid Build Coastguard Worker        ":renamefma4_h",
410*da0073e9SAndroid Build Coastguard Worker    ],
411*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
412*da0073e9SAndroid Build Coastguard Worker        "-DDORENAME=1",
413*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_FMA4=1",
414*da0073e9SAndroid Build Coastguard Worker        "-mfma4",
415*da0073e9SAndroid Build Coastguard Worker    ],
416*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
417*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
418*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
419*da0073e9SAndroid Build Coastguard Worker)
420*da0073e9SAndroid Build Coastguard Worker
421*da0073e9SAndroid Build Coastguard Workersleef_cc_library(
422*da0073e9SAndroid Build Coastguard Worker    name = "sleefsse2",
423*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + [
424*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimddp.c",
425*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimdsp.c",
426*da0073e9SAndroid Build Coastguard Worker        ":renamesse2_h",
427*da0073e9SAndroid Build Coastguard Worker    ],
428*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
429*da0073e9SAndroid Build Coastguard Worker        "-DDORENAME=1",
430*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_SSE2=1",
431*da0073e9SAndroid Build Coastguard Worker        "-msse2",
432*da0073e9SAndroid Build Coastguard Worker    ],
433*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
434*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
435*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
436*da0073e9SAndroid Build Coastguard Worker)
437*da0073e9SAndroid Build Coastguard Worker
438*da0073e9SAndroid Build Coastguard Workersleef_cc_library(
439*da0073e9SAndroid Build Coastguard Worker    name = "sleefsse4",
440*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + [
441*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimddp.c",
442*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimdsp.c",
443*da0073e9SAndroid Build Coastguard Worker        ":renamesse4_h",
444*da0073e9SAndroid Build Coastguard Worker    ],
445*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
446*da0073e9SAndroid Build Coastguard Worker        "-DDORENAME=1",
447*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_SSE4=1",
448*da0073e9SAndroid Build Coastguard Worker        "-msse4.1",
449*da0073e9SAndroid Build Coastguard Worker    ],
450*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
451*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
452*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
453*da0073e9SAndroid Build Coastguard Worker)
454*da0073e9SAndroid Build Coastguard Worker
455*da0073e9SAndroid Build Coastguard Workersleef_cc_library(
456*da0073e9SAndroid Build Coastguard Worker    name = "sleefpurec_scalar",
457*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + [
458*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimddp.c",
459*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimdsp.c",
460*da0073e9SAndroid Build Coastguard Worker        ":renamepurec_scalar_h",
461*da0073e9SAndroid Build Coastguard Worker    ],
462*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
463*da0073e9SAndroid Build Coastguard Worker        "-DDORENAME=1",
464*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_PUREC_SCALAR=1",
465*da0073e9SAndroid Build Coastguard Worker    ],
466*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
467*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
468*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
469*da0073e9SAndroid Build Coastguard Worker)
470*da0073e9SAndroid Build Coastguard Worker
471*da0073e9SAndroid Build Coastguard Workersleef_cc_library(
472*da0073e9SAndroid Build Coastguard Worker    name = "sleefpurecfma_scalar",
473*da0073e9SAndroid Build Coastguard Worker    srcs = SLEEF_PRIVATE_HEADERS + [
474*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimddp.c",
475*da0073e9SAndroid Build Coastguard Worker        "src/libm/sleefsimdsp.c",
476*da0073e9SAndroid Build Coastguard Worker        ":renamepurecfma_scalar_h",
477*da0073e9SAndroid Build Coastguard Worker    ],
478*da0073e9SAndroid Build Coastguard Worker    copts = SLEEF_PRIVATE_INCLUDES + SLEEF_COPTS + SLEEF_COMMON_TARGET_COPTS + [
479*da0073e9SAndroid Build Coastguard Worker        "-DDORENAME=1",
480*da0073e9SAndroid Build Coastguard Worker        "-DENABLE_PURECFMA_SCALAR=1",
481*da0073e9SAndroid Build Coastguard Worker        "-mavx2",
482*da0073e9SAndroid Build Coastguard Worker        "-mfma",
483*da0073e9SAndroid Build Coastguard Worker    ],
484*da0073e9SAndroid Build Coastguard Worker    linkstatic = True,
485*da0073e9SAndroid Build Coastguard Worker    visibility = SLEEF_VISIBILITY,
486*da0073e9SAndroid Build Coastguard Worker    alwayslink = True,
487*da0073e9SAndroid Build Coastguard Worker)
488