[libc] Provide Arm Optimized Routines for the LLVM libc project.
authorKristof Beyls <kristof.beyls@arm.com>
Mon, 16 Mar 2020 19:00:15 +0000 (12:00 -0700)
committerSiva Chandra Reddy <sivachandra@google.com>
Mon, 16 Mar 2020 19:19:31 +0000 (12:19 -0700)
commit0928368f623a0f885894f9c3ef1b740b060c0d9c
treea06c7e5a3782715202a2d4c58f0c187a34ceb09a
parent9b1513866fd0f4448115bdc0eaa13b20c6c8cb64
[libc] Provide Arm Optimized Routines for the LLVM libc project.

This adds the Arm Optimized Routines (see
https://github.com/ARM-software/optimized-routines) source code under the
the LLVM license. The version of the code provided in this patch is v20.02
of the Arm Optimized Routines project.

This entire contribution is being committed as is even though it does
not currently fit the LLVM libc model and does not follow the LLVM
coding style. In the near future, implementations from this patch will be
moved over to their right place in the LLVM-libc tree. This will be done
over many small patches, all of which will go through the normal LLVM code
review process. See this libc-dev post for the plan:
http://lists.llvm.org/pipermail/libc-dev/2020-March/000044.html

Differential revision of the original upload: https://reviews.llvm.org/D75355
180 files changed:
libc/AOR_v20.02/Makefile [new file with mode: 0644]
libc/AOR_v20.02/config.mk.dist [new file with mode: 0644]
libc/AOR_v20.02/math/Dir.mk [new file with mode: 0644]
libc/AOR_v20.02/math/cosf.c [new file with mode: 0644]
libc/AOR_v20.02/math/exp.c [new file with mode: 0644]
libc/AOR_v20.02/math/exp2.c [new file with mode: 0644]
libc/AOR_v20.02/math/exp2f.c [new file with mode: 0644]
libc/AOR_v20.02/math/exp2f_data.c [new file with mode: 0644]
libc/AOR_v20.02/math/exp_data.c [new file with mode: 0644]
libc/AOR_v20.02/math/expf.c [new file with mode: 0644]
libc/AOR_v20.02/math/include/mathlib.h [new file with mode: 0644]
libc/AOR_v20.02/math/log.c [new file with mode: 0644]
libc/AOR_v20.02/math/log2.c [new file with mode: 0644]
libc/AOR_v20.02/math/log2_data.c [new file with mode: 0644]
libc/AOR_v20.02/math/log2f.c [new file with mode: 0644]
libc/AOR_v20.02/math/log2f_data.c [new file with mode: 0644]
libc/AOR_v20.02/math/log_data.c [new file with mode: 0644]
libc/AOR_v20.02/math/logf.c [new file with mode: 0644]
libc/AOR_v20.02/math/logf_data.c [new file with mode: 0644]
libc/AOR_v20.02/math/math_config.h [new file with mode: 0644]
libc/AOR_v20.02/math/math_err.c [new file with mode: 0644]
libc/AOR_v20.02/math/math_errf.c [new file with mode: 0644]
libc/AOR_v20.02/math/pow.c [new file with mode: 0644]
libc/AOR_v20.02/math/pow_log_data.c [new file with mode: 0644]
libc/AOR_v20.02/math/powf.c [new file with mode: 0644]
libc/AOR_v20.02/math/powf_log2_data.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_cos.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_cosf.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_exp.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_exp2f.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_exp2f_1u.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_expf.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_expf_1u.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_log.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_logf.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_pow.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_powf.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_sin.c [new file with mode: 0644]
libc/AOR_v20.02/math/s_sinf.c [new file with mode: 0644]
libc/AOR_v20.02/math/sincosf.c [new file with mode: 0644]
libc/AOR_v20.02/math/sincosf.h [new file with mode: 0644]
libc/AOR_v20.02/math/sincosf_data.c [new file with mode: 0644]
libc/AOR_v20.02/math/sinf.c [new file with mode: 0644]
libc/AOR_v20.02/math/test/mathbench.c [new file with mode: 0644]
libc/AOR_v20.02/math/test/mathtest.c [new file with mode: 0644]
libc/AOR_v20.02/math/test/rtest/dotest.c [new file with mode: 0644]
libc/AOR_v20.02/math/test/rtest/intern.h [new file with mode: 0644]
libc/AOR_v20.02/math/test/rtest/main.c [new file with mode: 0644]
libc/AOR_v20.02/math/test/rtest/random.c [new file with mode: 0644]
libc/AOR_v20.02/math/test/rtest/random.h [new file with mode: 0644]
libc/AOR_v20.02/math/test/rtest/semi.c [new file with mode: 0644]
libc/AOR_v20.02/math/test/rtest/semi.h [new file with mode: 0644]
libc/AOR_v20.02/math/test/rtest/types.h [new file with mode: 0644]
libc/AOR_v20.02/math/test/rtest/wrappers.c [new file with mode: 0644]
libc/AOR_v20.02/math/test/rtest/wrappers.h [new file with mode: 0644]
libc/AOR_v20.02/math/test/runulp.sh [new file with mode: 0755]
libc/AOR_v20.02/math/test/testcases/directed/cosf.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/exp.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/exp2.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/exp2f.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/expf.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/log.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/log2.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/log2f.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/logf.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/pow.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/powf.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/sincosf.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/directed/sinf.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/random/double.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/testcases/random/float.tst [new file with mode: 0644]
libc/AOR_v20.02/math/test/traces/exp.txt [new file with mode: 0644]
libc/AOR_v20.02/math/test/traces/sincosf.txt [new file with mode: 0644]
libc/AOR_v20.02/math/test/ulp.c [new file with mode: 0644]
libc/AOR_v20.02/math/test/ulp.h [new file with mode: 0644]
libc/AOR_v20.02/math/tools/cos.sollya [new file with mode: 0644]
libc/AOR_v20.02/math/tools/exp.sollya [new file with mode: 0644]
libc/AOR_v20.02/math/tools/exp2.sollya [new file with mode: 0644]
libc/AOR_v20.02/math/tools/log.sollya [new file with mode: 0644]
libc/AOR_v20.02/math/tools/log2.sollya [new file with mode: 0644]
libc/AOR_v20.02/math/tools/log2_abs.sollya [new file with mode: 0644]
libc/AOR_v20.02/math/tools/log_abs.sollya [new file with mode: 0644]
libc/AOR_v20.02/math/tools/plot.py [new file with mode: 0755]
libc/AOR_v20.02/math/tools/remez.jl [new file with mode: 0755]
libc/AOR_v20.02/math/tools/sin.sollya [new file with mode: 0644]
libc/AOR_v20.02/math/tools/v_exp.sollya [new file with mode: 0644]
libc/AOR_v20.02/math/tools/v_log.sollya [new file with mode: 0644]
libc/AOR_v20.02/math/tools/v_sin.sollya [new file with mode: 0644]
libc/AOR_v20.02/math/v_cos.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_cosf.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_exp.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_exp.h [new file with mode: 0644]
libc/AOR_v20.02/math/v_exp2f.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_exp2f_1u.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_exp_data.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_expf.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_expf_1u.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_log.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_log.h [new file with mode: 0644]
libc/AOR_v20.02/math/v_log_data.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_logf.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_math.h [new file with mode: 0644]
libc/AOR_v20.02/math/v_pow.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_powf.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_sin.c [new file with mode: 0644]
libc/AOR_v20.02/math/v_sinf.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_cos.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_cosf.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_exp.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_exp2f.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_exp2f_1u.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_expf.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_expf_1u.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_log.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_logf.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_pow.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_powf.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_sin.c [new file with mode: 0644]
libc/AOR_v20.02/math/vn_sinf.c [new file with mode: 0644]
libc/AOR_v20.02/networking/Dir.mk [new file with mode: 0644]
libc/AOR_v20.02/networking/aarch64/chksum_simd.c [new file with mode: 0644]
libc/AOR_v20.02/networking/arm/chksum_simd.c [new file with mode: 0644]
libc/AOR_v20.02/networking/chksum.c [new file with mode: 0644]
libc/AOR_v20.02/networking/chksum_common.h [new file with mode: 0644]
libc/AOR_v20.02/networking/include/networking.h [new file with mode: 0644]
libc/AOR_v20.02/networking/test/chksum.c [new file with mode: 0644]
libc/AOR_v20.02/string/Dir.mk [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/check-arch.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/memchr-sve.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/memchr.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/memcmp-sve.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/memcmp.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/memcpy-advsimd.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/memcpy.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/memset.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/stpcpy-sve.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/stpcpy.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strchr-mte.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strchr-sve.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strchr.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strchrnul-sve.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strchrnul.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strcmp-sve.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strcmp.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strcpy-sve.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strcpy.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strlen-mte.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strlen-sve.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strlen.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strncmp-sve.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strncmp.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strnlen-sve.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strnlen.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strrchr-sve.S [new file with mode: 0644]
libc/AOR_v20.02/string/aarch64/strrchr.S [new file with mode: 0644]
libc/AOR_v20.02/string/arm/check-arch.S [new file with mode: 0644]
libc/AOR_v20.02/string/arm/memchr.S [new file with mode: 0644]
libc/AOR_v20.02/string/arm/memcpy.S [new file with mode: 0644]
libc/AOR_v20.02/string/arm/memset.S [new file with mode: 0644]
libc/AOR_v20.02/string/arm/strcmp-armv6m.S [new file with mode: 0644]
libc/AOR_v20.02/string/arm/strcmp.S [new file with mode: 0644]
libc/AOR_v20.02/string/arm/strcpy.c [new file with mode: 0644]
libc/AOR_v20.02/string/arm/strlen-armv6t2.S [new file with mode: 0644]
libc/AOR_v20.02/string/asmdefs.h [new file with mode: 0644]
libc/AOR_v20.02/string/include/stringlib.h [new file with mode: 0644]
libc/AOR_v20.02/string/test/memchr.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/memcmp.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/memcpy.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/memmove.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/memset.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/stpcpy.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/strchr.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/strchrnul.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/strcmp.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/strcpy.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/strlen.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/strncmp.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/strnlen.c [new file with mode: 0644]
libc/AOR_v20.02/string/test/strrchr.c [new file with mode: 0644]
libc/AOR_v20.02/string/x86_64/check-arch.S [new file with mode: 0644]