aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2016-11-16 14:38:07 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2016-11-16 14:38:07 +0800
commitc4b1839ae8b1b6f33ea8a938b9bede5012a1f4e7 (patch)
treedc67e34938c492bdb15b37bea1ecbdb3e79fa3c6
parent28ea8b4a3153dfde28edee2ab6446bee8c2ce621 (diff)
downloaddexon-mcl-c4b1839ae8b1b6f33ea8a938b9bede5012a1f4e7.tar.gz
dexon-mcl-c4b1839ae8b1b6f33ea8a938b9bede5012a1f4e7.tar.zst
dexon-mcl-c4b1839ae8b1b6f33ea8a938b9bede5012a1f4e7.zip
use shr1 by llvm
-rw-r--r--src/low_func_llvm.hpp1
-rw-r--r--src/proto.hpp1
2 files changed, 2 insertions, 0 deletions
diff --git a/src/low_func_llvm.hpp b/src/low_func_llvm.hpp
index b6bf412..50dd5d6 100644
--- a/src/low_func_llvm.hpp
+++ b/src/low_func_llvm.hpp
@@ -11,6 +11,7 @@ struct EnableKaratsuba<Ltag> {
#define MCL_DEF_LLVM_FUNC(n) \
template<>const u3u AddPre<n, Ltag>::f = &mcl_fp_addPre ## n ## L; \
template<>const u3u SubPre<n, Ltag>::f = &mcl_fp_subPre ## n ## L; \
+template<>const void2u Shr1<n, Ltag>::f = &mcl_fp_shr1_ ## n ## L; \
template<>const void3u MulPreCore<n, Ltag>::f = &mcl_fpDbl_mulPre ## n ## L; \
template<>const void2u SqrPreCore<n, Ltag>::f = &mcl_fpDbl_sqrPre ## n ## L; \
template<>const void2uI MulUnitPre<n, Ltag>::f = &mcl_fp_mulUnitPre ## n ## L; \
diff --git a/src/proto.hpp b/src/proto.hpp
index d161f8e..6fdebe9 100644
--- a/src/proto.hpp
+++ b/src/proto.hpp
@@ -11,6 +11,7 @@
#define MCL_FP_DEF_FUNC_SUB(n, suf) \
void mcl_fp_add ## n ## suf(mcl::fp::Unit* z, const mcl::fp::Unit* x, const mcl::fp::Unit* y, const mcl::fp::Unit* p); \
void mcl_fp_sub ## n ## suf(mcl::fp::Unit* z, const mcl::fp::Unit* x, const mcl::fp::Unit* y, const mcl::fp::Unit* p); \
+void mcl_fp_shr1_ ## n ## suf(mcl::fp::Unit*y, const mcl::fp::Unit* x); \
mcl::fp::Unit mcl_fp_addPre ## n ## suf(mcl::fp::Unit* z, const mcl::fp::Unit* x, const mcl::fp::Unit* y); \
mcl::fp::Unit mcl_fp_subPre ## n ## suf(mcl::fp::Unit* z, const mcl::fp::Unit* x, const mcl::fp::Unit* y); \
void mcl_fp_mulUnitPre ## n ## suf(mcl::fp::Unit* z, const mcl::fp::Unit* x, mcl::fp::Unit y); \