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