constantine/benchmarks
Mamy Ratsimbazafy 14af7e8724
Low-level refactoring (#175)
* Add specific fromMont conversion routine. Rename montyResidue to getMont

* missed test file

* Add x86_64 ASM for fromMont

* Add x86_64 MULX/ADCX/ADOX for fromMont

* rework Montgomery Multiplication with prefetch/latency hiding techniques

* Fix ADX autodetection, closes #174. Rollback faster mul_mont attempt, no improvement and debug pain.

* finalSub in fromMont & adx_bmi -> adx

* Some {.noInit.} to avoid Nim zeroMem (which should be optimized away but who knows)

* Uniformize name 'op+domain': mulmod - mulmont

* Fix asm codegen bug "0x0000555555565930 <+896>:   sbb    0x20(%r8),%r8" with Clang in final substraction

* Prepare for skipping final substraction

* Don't forget to copy the result when we skip the final substraction

* Seems like we need to stash the idea of skipping the final substraction for now, needs bounds analysis https://eprint.iacr.org/2017/1057.pdf

* fix condition for ASM 32-bit

* optim modular addition when sparebit is available
2022-02-14 00:16:55 +01:00
..
platforms benchmarking skips cycle counting for ARM 2020-04-15 21:24:18 +02:00
bench_blueprint.nim Field sqrt optimization (#168) 2022-01-01 16:19:35 +01:00
bench_ec_g1.nim Rename NotOnTwist/OnTwist => subgroup G1 and G2 2022-01-01 19:17:04 +01:00
bench_ec_g2.nim Rename NotOnTwist/OnTwist => subgroup G1 and G2 2022-01-01 19:17:04 +01:00
bench_elliptic_template.nim Fast modular inversion (#172) 2022-02-10 14:05:07 +01:00
bench_fields_template.nim Low-level refactoring (#175) 2022-02-14 00:16:55 +01:00
bench_fp.nim Low-level refactoring (#175) 2022-02-14 00:16:55 +01:00
bench_fp2.nim Jacobian coordinates (#95) 2020-10-02 00:01:09 +02:00
bench_fp4.nim Jacobian coordinates (#95) 2020-10-02 00:01:09 +02:00
bench_fp6.nim Remove unused curves 2020-09-27 13:13:45 +02:00
bench_fp12.nim Remove unused curves 2020-09-27 13:13:45 +02:00
bench_fp_double_precision.nim Field sqrt optimization (#168) 2022-01-01 16:19:35 +01:00
bench_hash_to_curve.nim Fast modular inversion (#172) 2022-02-10 14:05:07 +01:00
bench_pairing_bls12_377.nim Optimize Miller Loop and prepare Multi-pairing (#159) 2021-02-14 13:06:57 +01:00
bench_pairing_bls12_381.nim Multipairing (#165) 2021-08-16 22:22:51 +02:00
bench_pairing_bn254_nogami.nim Optimize Miller Loop and prepare Multi-pairing (#159) 2021-02-14 13:06:57 +01:00
bench_pairing_bn254_snarks.nim Optimize Miller Loop and prepare Multi-pairing (#159) 2021-02-14 13:06:57 +01:00
bench_pairing_template.nim Fast modular inversion (#172) 2022-02-10 14:05:07 +01:00
bench_sha256.nim Hash to curve - BLS12-381 (#110) 2021-08-13 22:07:26 +02:00
bench_summary_bls12_377.nim Rename NotOnTwist/OnTwist => subgroup G1 and G2 2022-01-01 19:17:04 +01:00
bench_summary_bls12_381.nim Rename NotOnTwist/OnTwist => subgroup G1 and G2 2022-01-01 19:17:04 +01:00
bench_summary_bn254_nogami.nim Rename NotOnTwist/OnTwist => subgroup G1 and G2 2022-01-01 19:17:04 +01:00
bench_summary_bn254_snarks.nim Rename NotOnTwist/OnTwist => subgroup G1 and G2 2022-01-01 19:17:04 +01:00
bench_summary_template.nim Fast modular inversion (#172) 2022-02-10 14:05:07 +01:00
platforms.nim Remove outdated TODOs [skip ci] 2020-10-11 21:33:59 +02:00