Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add remaining rewrite rules for saturated arithmetic #1778

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on Jan 4, 2024

  1. Add remaining rewrite rules for saturated arithmetic

    For https://github.com/mit-plv/fiat-crypto/pull/1609
    
    <details><summary>Timing Diff</summary>
    <p>
    
    ```
         After |   Peak Mem | File Name                                                         |     Before |   Peak Mem ||    Change || Change (mem) | % Change | % Change (mem)
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    133m38.95s | 4370484 ko | Total Time / Peak Mem                                             | 129m38.05s | 3712508 ko || +4m00.90s ||    657976 ko |   +3.09% |        +17.72%
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      5m34.12s | 4370484 ko | Rewriter/Passes/NBE.vo                                            |   2m34.13s | 3330528 ko || +2m59.99s ||   1039956 ko | +116.77% |        +31.22%
      1m59.50s | 2329072 ko | fiat-rust/src/p384_scalar_32.rs                                   |   2m02.66s | 2299112 ko || -0m03.15s ||     29960 ko |   -2.57% |         +1.30%
      1m57.95s | 2415624 ko | fiat-json/src/p384_32.json                                        |   1m54.82s | 2444832 ko || +0m03.13s ||    -29208 ko |   +2.72% |         -1.19%
      0m39.98s | 2234396 ko | ExtractionOCaml/dettman_multiplication                            |   0m36.98s | 1927716 ko || +0m03.00s ||    306680 ko |   +8.11% |        +15.90%
      5m31.05s | 3200456 ko | Bedrock/Field/Synthesis/Examples/p224_64_new.vo                   |   5m28.82s | 3175412 ko || +0m02.23s ||     25044 ko |   +0.67% |         +0.78%
      2m00.23s | 2461568 ko | fiat-json/src/p384_scalar_32.json                                 |   1m58.15s | 2162244 ko || +0m02.07s ||    299324 ko |   +1.76% |        +13.84%
      1m59.33s | 2241456 ko | fiat-bedrock2/src/p384_scalar_32.c                                |   2m01.48s | 2430500 ko || -0m02.15s ||   -189044 ko |   -1.76% |         -7.77%
      1m58.75s | 2141892 ko | fiat-java/src/FiatP384Scalar.java                                 |   2m01.05s | 2237348 ko || -0m02.29s ||    -95456 ko |   -1.90% |         -4.26%
      1m58.44s | 2273192 ko | fiat-go/32/p384scalar/p384scalar.go                               |   2m00.68s | 2317900 ko || -0m02.24s ||    -44708 ko |   -1.85% |         -1.92%
      1m57.40s | 2307724 ko | fiat-java/src/FiatP384.java                                       |   1m59.84s | 2327088 ko || -0m02.43s ||    -19364 ko |   -2.03% |         -0.83%
      1m56.84s | 2321212 ko | fiat-zig/src/p384_32.zig                                          |   1m59.10s | 2285560 ko || -0m02.25s ||     35652 ko |   -1.89% |         +1.55%
      1m56.07s | 2290720 ko | fiat-c/src/p384_32.c                                              |   1m58.32s | 2325148 ko || -0m02.25s ||    -34428 ko |   -1.90% |         -1.48%
      1m02.24s | 3703520 ko | ExtractionOCaml/with_bedrock2_fiat_crypto                         |   0m59.53s | 3712508 ko || +0m02.71s ||     -8988 ko |   +4.55% |         -0.24%
      1m01.35s | 3705452 ko | ExtractionOCaml/bedrock2_fiat_crypto                              |   0m59.03s | 3710668 ko || +0m02.32s ||     -5216 ko |   +3.93% |         -0.14%
      0m54.91s | 3724428 ko | ExtractionOCaml/fiat_crypto                                       |   0m52.48s | 3710332 ko || +0m02.42s ||     14096 ko |   +4.63% |         +0.37%
      0m54.29s | 2480048 ko | ExtractionJsOfOCaml/fiat_crypto.ml                                |   0m52.17s | 2487376 ko || +0m02.11s ||     -7328 ko |   +4.06% |         -0.29%
      0m48.09s | 2652116 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery             |   0m45.49s | 2632088 ko || +0m02.60s ||     20028 ko |   +5.71% |         +0.76%
      0m47.65s | 2657836 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery                  |   0m44.92s | 2630968 ko || +0m02.72s ||     26868 ko |   +6.07% |         +1.02%
      0m47.57s | 2726404 ko | ExtractionOCaml/bedrock2_solinas_reduction                        |   0m45.01s | 2704500 ko || +0m02.56s ||     21904 ko |   +5.68% |         +0.80%
      0m45.77s | 2689372 ko | ExtractionOCaml/solinas_reduction                                 |   0m43.29s | 2683760 ko || +0m02.48s ||      5612 ko |   +5.72% |         +0.20%
      0m45.63s | 2633500 ko | ExtractionOCaml/word_by_word_montgomery                           |   0m43.16s | 2619516 ko || +0m02.47s ||     13984 ko |   +5.72% |         +0.53%
      0m45.27s | 2544004 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas                 |   0m42.87s | 2533792 ko || +0m02.40s ||     10212 ko |   +5.59% |         +0.40%
      0m45.08s | 2545148 ko | ExtractionOCaml/bedrock2_unsaturated_solinas                      |   0m42.40s | 2536564 ko || +0m02.67s ||      8584 ko |   +6.32% |         +0.33%
      0m42.60s | 2339896 ko | ExtractionOCaml/unsaturated_solinas                               |   0m40.15s | 2331728 ko || +0m02.45s ||      8168 ko |   +6.10% |         +0.35%
      0m42.14s | 2237132 ko | ExtractionOCaml/with_bedrock2_base_conversion                     |   0m39.92s | 2230688 ko || +0m02.21s ||      6444 ko |   +5.56% |         +0.28%
      0m41.95s | 2258216 ko | ExtractionOCaml/bedrock2_dettman_multiplication                   |   0m39.79s | 2246108 ko || +0m02.16s ||     12108 ko |   +5.42% |         +0.53%
      0m41.92s | 2240944 ko | ExtractionOCaml/with_bedrock2_saturated_solinas                   |   0m39.70s | 2233448 ko || +0m02.21s ||      7496 ko |   +5.59% |         +0.33%
      0m41.86s | 2239092 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication              |   0m39.56s | 2234396 ko || +0m02.29s ||      4696 ko |   +5.81% |         +0.21%
      0m41.57s | 2240068 ko | ExtractionOCaml/bedrock2_saturated_solinas                        |   0m39.51s | 2231968 ko || +0m02.06s ||      8100 ko |   +5.21% |         +0.36%
      0m41.41s | 2234816 ko | ExtractionOCaml/bedrock2_base_conversion                          |   0m39.16s | 2224784 ko || +0m02.25s ||     10032 ko |   +5.74% |         +0.45%
      0m39.09s | 2045652 ko | ExtractionOCaml/base_conversion                                   |   0m36.77s | 1882572 ko || +0m02.32s ||    163080 ko |   +6.30% |         +8.66%
      0m39.06s | 2055248 ko | ExtractionOCaml/saturated_solinas                                 |   0m36.32s | 1900876 ko || +0m02.74s ||    154372 ko |   +7.54% |         +8.12%
      0m35.49s | 1741752 ko | ExtractionOCaml/perf_unsaturated_solinas                          |   0m33.30s | 1696000 ko || +0m02.19s ||     45752 ko |   +6.57% |         +2.69%
      2m00.22s | 2401976 ko | fiat-bedrock2/src/p384_32.c                                       |   2m02.18s | 2217824 ko || -0m01.96s ||    184152 ko |   -1.60% |         +8.30%
      1m59.91s | 2320940 ko | fiat-zig/src/p384_scalar_32.zig                                   |   2m01.71s | 2195356 ko || -0m01.79s ||    125584 ko |   -1.47% |         +5.72%
      1m59.14s | 2264508 ko | fiat-c/src/p384_scalar_32.c                                       |   2m01.04s | 2315428 ko || -0m01.90s ||    -50920 ko |   -1.56% |         -2.19%
      1m58.08s | 2290144 ko | fiat-rust/src/p384_32.rs                                          |   1m59.31s | 2292024 ko || -0m01.23s ||     -1880 ko |   -1.03% |         -0.08%
      0m42.55s | 2240500 ko | ExtractionOCaml/with_bedrock2_solinas_reduction                   |   0m40.66s | 2234592 ko || +0m01.89s ||      5908 ko |   +4.64% |         +0.26%
      0m40.28s | 1478504 ko | Rewriter/Passes/Arith.vo                                          |   0m41.98s | 1481228 ko || -0m01.69s ||     -2724 ko |   -4.04% |         -0.18%
      0m34.72s | 1752580 ko | ExtractionOCaml/perf_word_by_word_montgomery                      |   0m32.93s | 1718100 ko || +0m01.78s ||     34480 ko |   +5.43% |         +2.00%
      0m29.64s | 2053032 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.ml           |   0m28.62s | 2049864 ko || +0m01.01s ||      3168 ko |   +3.56% |         +0.15%
      0m28.03s | 1945424 ko | ExtractionOCaml/saturated_solinas.ml                              |   0m26.78s | 1911944 ko || +0m01.25s ||     33480 ko |   +4.66% |         +1.75%
      0m17.56s |  320704 ko | fiat-go/64/p434/p434.go                                           |   0m16.35s |  344808 ko || +0m01.20s ||    -24104 ko |   +7.40% |         -6.99%
      8m04.87s | 2663916 ko | Bedrock/End2End/X25519/GarageDoor.vo                              |   8m04.02s | 2661980 ko || +0m00.85s ||      1936 ko |   +0.17% |         +0.07%
      4m45.51s | 2494088 ko | Bedrock/End2End/X25519/EdwardsXYZT.vo                             |   4m46.33s | 2489792 ko || -0m00.81s ||      4296 ko |   -0.28% |         +0.17%
      3m21.85s | 3498672 ko | Rewriter/Passes/ArithWithCasts.vo                                 |   3m21.48s | 3497152 ko || +0m00.37s ||      1520 ko |   +0.18% |         +0.04%
      2m06.54s | 1391724 ko | Bedrock/End2End/X25519/Field25519.vo                              |   2m06.68s | 1385108 ko || -0m00.14s ||      6616 ko |   -0.11% |         +0.47%
      1m59.46s | 2196900 ko | fiat-go/32/p384/p384.go                                           |   1m58.78s | 2251120 ko || +0m00.68s ||    -54220 ko |   +0.57% |         -2.40%
      1m53.98s | 2478600 ko | Rewriter/Passes/ToFancyWithCasts.vo                               |   1m53.96s | 2481272 ko || +0m00.01s ||     -2672 ko |   +0.01% |         -0.10%
      1m32.90s | 1957336 ko | SlowPrimeSynthesisExamples.vo                                     |   1m32.90s | 1951288 ko || +0m00.00s ||      6048 ko |   +0.00% |         +0.30%
      1m32.09s | 2070416 ko | Fancy/Barrett256.vo                                               |   1m31.69s | 2070856 ko || +0m00.40s ||      -440 ko |   +0.43% |         -0.02%
      0m56.65s | 2591660 ko | ExtractionOCaml/with_bedrock2_fiat_crypto.ml                      |   0m56.04s | 2587220 ko || +0m00.60s ||      4440 ko |   +1.08% |         +0.17%
      0m56.59s | 2591872 ko | ExtractionOCaml/bedrock2_fiat_crypto.ml                           |   0m55.96s | 2588596 ko || +0m00.63s ||      3276 ko |   +1.12% |         +0.12%
      0m56.36s | 2597952 ko | ExtractionJsOfOCaml/with_bedrock2_fiat_crypto.ml                  |   0m55.83s | 2591080 ko || +0m00.53s ||      6872 ko |   +0.94% |         +0.26%
      0m56.26s |  834704 ko | Rewriter/RulesProofs.vo                                           |   0m55.87s |  848780 ko || +0m00.39s ||    -14076 ko |   +0.69% |         -1.65%
      0m56.16s | 2599000 ko | ExtractionJsOfOCaml/bedrock2_fiat_crypto.ml                       |   0m55.46s | 2588324 ko || +0m00.69s ||     10676 ko |   +1.26% |         +0.41%
      0m54.47s | 2480528 ko | ExtractionOCaml/fiat_crypto.ml                                    |   0m53.50s | 2488780 ko || +0m00.96s ||     -8252 ko |   +1.81% |         -0.33%
      0m50.01s | 1117432 ko | Rewriter/Passes/MultiRetSplit.vo                                  |   0m50.54s | 1117464 ko || -0m00.53s ||       -32 ko |   -1.04% |         -0.00%
      0m47.05s | 1843584 ko | Fancy/Montgomery256.vo                                            |   0m46.57s | 1882256 ko || +0m00.47s ||    -38672 ko |   +1.03% |         -2.05%
      0m41.03s |   89412 ko | fiat-go/32/p521/p521.go                                           |   0m41.29s |   90304 ko || -0m00.25s ||      -892 ko |   -0.62% |         -0.98%
      0m38.73s |  192288 ko | fiat-bedrock2/src/p521_32.c                                       |   0m38.54s |  191252 ko || +0m00.18s ||      1036 ko |   +0.49% |         +0.54%
      0m37.96s | 2250044 ko | ExtractionOCaml/bedrock2_solinas_reduction.ml                     |   0m37.38s | 2262168 ko || +0m00.57s ||    -12124 ko |   +1.55% |         -0.53%
      0m37.96s |  139000 ko | fiat-json/src/p521_32.json                                        |   0m37.84s |  133668 ko || +0m00.11s ||      5332 ko |   +0.31% |         +3.98%
      0m37.78s |   80004 ko | fiat-zig/src/p521_32.zig                                          |   0m37.75s |   84172 ko || +0m00.03s ||     -4168 ko |   +0.07% |         -4.95%
      0m37.75s |   81832 ko | fiat-rust/src/p521_32.rs                                          |   0m37.84s |   82404 ko || -0m00.09s ||      -572 ko |   -0.23% |         -0.69%
      0m37.63s |   85588 ko | fiat-java/src/FiatP521.java                                       |   0m37.81s |   83048 ko || -0m00.17s ||      2540 ko |   -0.47% |         +3.05%
      0m37.53s |   82628 ko | fiat-c/src/p521_32.c                                              |   0m37.72s |   79408 ko || -0m00.18s ||      3220 ko |   -0.50% |         +4.05%
      0m37.25s | 2254188 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.ml          |   0m36.44s | 2212012 ko || +0m00.81s ||     42176 ko |   +2.22% |         +1.90%
      0m37.14s | 2254952 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.ml               |   0m36.41s | 2211712 ko || +0m00.73s ||     43240 ko |   +2.00% |         +1.95%
      0m36.21s | 2176032 ko | ExtractionOCaml/solinas_reduction.ml                              |   0m35.30s | 2146952 ko || +0m00.91s ||     29080 ko |   +2.57% |         +1.35%
      0m35.12s | 2145588 ko | ExtractionOCaml/word_by_word_montgomery.ml                        |   0m34.17s | 2116752 ko || +0m00.94s ||     28836 ko |   +2.78% |         +1.36%
      0m33.21s |  899056 ko | Rewriter/Passes/MulSplit.vo                                       |   0m33.18s |  895480 ko || +0m00.03s ||      3576 ko |   +0.09% |         +0.39%
      0m32.88s | 2166828 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.ml              |   0m33.41s | 2166516 ko || -0m00.52s ||       312 ko |   -1.58% |         +0.01%
      0m32.85s | 2164880 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.ml                   |   0m33.57s | 2166408 ko || -0m00.71s ||     -1528 ko |   -2.14% |         -0.07%
      0m32.49s | 1221984 ko | Bedrock/End2End/X25519/MontgomeryLadder.vo                        |   0m32.64s | 1219996 ko || -0m00.14s ||      1988 ko |   -0.45% |         +0.16%
      0m32.10s | 2091560 ko | ExtractionOCaml/unsaturated_solinas.ml                            |   0m31.31s | 2033016 ko || +0m00.79s ||     58544 ko |   +2.52% |         +2.87%
      0m30.93s | 1256232 ko | Bedrock/End2End/X25519/GarageDoorTop.vo                           |   0m31.18s | 1258200 ko || -0m00.25s ||     -1968 ko |   -0.80% |         -0.15%
      0m30.58s | 2083824 ko | ExtractionOCaml/bedrock2_dettman_multiplication.ml                |   0m29.69s | 2035044 ko || +0m00.88s ||     48780 ko |   +2.99% |         +2.39%
      0m30.07s | 1481064 ko | StandaloneDebuggingExamples.vo                                    |   0m30.16s | 1479316 ko || -0m00.08s ||      1748 ko |   -0.29% |         +0.11%
      0m29.85s | 2075580 ko | ExtractionOCaml/bedrock2_base_conversion.ml                       |   0m29.01s | 2027820 ko || +0m00.83s ||     47760 ko |   +2.89% |         +2.35%
      0m29.71s | 2074580 ko | ExtractionOCaml/with_bedrock2_base_conversion.ml                  |   0m28.90s | 2028104 ko || +0m00.81s ||     46476 ko |   +2.80% |         +2.29%
      0m29.71s | 2070300 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.ml                |   0m28.72s | 2048012 ko || +0m00.99s ||     22288 ko |   +3.44% |         +1.08%
      0m29.58s | 2070020 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.ml                |   0m28.98s | 2048204 ko || +0m00.59s ||     21816 ko |   +2.07% |         +1.06%
      0m29.57s | 2070812 ko | ExtractionOCaml/bedrock2_saturated_solinas.ml                     |   0m28.64s | 2048732 ko || +0m00.92s ||     22080 ko |   +3.24% |         +1.07%
      0m28.56s | 2011744 ko | ExtractionOCaml/dettman_multiplication.ml                         |   0m27.77s | 1986400 ko || +0m00.78s ||     25344 ko |   +2.84% |         +1.27%
      0m27.60s | 1954988 ko | ExtractionOCaml/base_conversion.ml                                |   0m27.05s | 1939500 ko || +0m00.55s ||     15488 ko |   +2.03% |         +0.79%
      0m25.28s | 1299164 ko | PerfTesting/PerfTestSearch.vo                                     |   0m25.45s | 1302744 ko || -0m00.16s ||     -3580 ko |   -0.66% |         -0.27%
      0m21.63s | 1909120 ko | ExtractionOCaml/perf_unsaturated_solinas.ml                       |   0m20.75s | 1832892 ko || +0m00.87s ||     76228 ko |   +4.24% |         +4.15%
      0m21.54s | 2437392 ko | ExtractionHaskell/with_bedrock2_fiat_crypto.hs                    |   0m21.34s | 2441484 ko || +0m00.19s ||     -4092 ko |   +0.93% |         -0.16%
      0m21.40s | 2436356 ko | ExtractionHaskell/bedrock2_fiat_crypto.hs                         |   0m21.03s | 2438364 ko || +0m00.36s ||     -2008 ko |   +1.75% |         -0.08%
      0m21.26s | 1899948 ko | ExtractionOCaml/perf_word_by_word_montgomery.ml                   |   0m21.00s | 1929736 ko || +0m00.26s ||    -29788 ko |   +1.23% |         -1.54%
      0m20.89s | 1109836 ko | PushButtonSynthesis/UnsaturatedSolinas.vo                         |   0m20.89s | 1117536 ko || +0m00.00s ||     -7700 ko |   +0.00% |         -0.68%
      0m20.78s | 2366272 ko | ExtractionHaskell/fiat_crypto.hs                                  |   0m20.58s | 2338376 ko || +0m00.20s ||     27896 ko |   +0.97% |         +1.19%
      0m18.71s | 1115184 ko | PushButtonSynthesis/WordByWordMontgomery.vo                       |   0m18.71s | 1116872 ko || +0m00.00s ||     -1688 ko |   +0.00% |         -0.15%
      0m18.52s | 1088300 ko | Bedrock/End2End/Poly1305/Field1305.vo                             |   0m18.43s | 1082908 ko || +0m00.08s ||      5392 ko |   +0.48% |         +0.49%
      0m18.02s |  385368 ko | fiat-bedrock2/src/p434_64.c                                       |   0m18.09s |  395184 ko || -0m00.07s ||     -9816 ko |   -0.38% |         -2.48%
      0m17.58s |  385232 ko | fiat-json/src/p434_64.json                                        |   0m17.61s |  354440 ko || -0m00.03s ||     30792 ko |   -0.17% |         +8.68%
      0m17.55s | 2147688 ko | ExtractionHaskell/with_bedrock2_word_by_word_montgomery.hs        |   0m17.01s | 2096248 ko || +0m00.53s ||     51440 ko |   +3.17% |         +2.45%
      0m17.53s |  332812 ko | fiat-rust/src/p434_64.rs                                          |   0m17.51s |  331704 ko || +0m00.01s ||      1108 ko |   +0.11% |         +0.33%
      0m17.42s | 1291228 ko | PerfTesting/PerfTestSearchPattern.vo                              |   0m17.36s | 1290596 ko || +0m00.06s ||       632 ko |   +0.34% |         +0.04%
      0m17.41s | 2162836 ko | ExtractionHaskell/bedrock2_solinas_reduction.hs                   |   0m17.05s | 2115740 ko || +0m00.35s ||     47096 ko |   +2.11% |         +2.22%
      0m17.34s | 2162424 ko | ExtractionHaskell/with_bedrock2_solinas_reduction.hs              |   0m17.01s | 2115484 ko || +0m00.32s ||     46940 ko |   +1.94% |         +2.21%
      0m17.32s |  319240 ko | fiat-zig/src/p434_64.zig                                          |   0m17.41s |  332084 ko || -0m00.08s ||    -12844 ko |   -0.51% |         -3.86%
      0m17.29s | 2148704 ko | ExtractionHaskell/bedrock2_word_by_word_montgomery.hs             |   0m16.97s | 2095280 ko || +0m00.32s ||     53424 ko |   +1.88% |         +2.54%
      0m17.28s |  327216 ko | fiat-c/src/p434_64.c                                              |   0m17.59s |  320604 ko || -0m00.30s ||      6612 ko |   -1.76% |         +2.06%
      0m16.94s |  591992 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_32.c                |   0m16.89s |  549204 ko || +0m00.05s ||     42788 ko |   +0.29% |         +7.79%
      0m16.88s | 1097764 ko | Bedrock/Field/Translation/Proofs/Func.vo                          |   0m16.94s | 1091044 ko || -0m00.06s ||      6720 ko |   -0.35% |         +0.61%
      0m16.64s | 2058508 ko | ExtractionHaskell/solinas_reduction.hs                            |   0m16.27s | 2040460 ko || +0m00.37s ||     18048 ko |   +2.27% |         +0.88%
      0m16.64s |  545948 ko | fiat-bedrock2/src/p256_scalar_32.c                                |   0m16.81s |  582184 ko || -0m00.16s ||    -36236 ko |   -1.01% |         -6.22%
      0m16.60s |  497404 ko | fiat-java/src/FiatP256Scalar.java                                 |   0m16.49s |  465532 ko || +0m00.11s ||     31872 ko |   +0.66% |         +6.84%
      0m16.48s | 2015788 ko | ExtractionHaskell/word_by_word_montgomery.hs                      |   0m16.14s | 1994928 ko || +0m00.33s ||     20860 ko |   +2.10% |         +1.04%
      0m16.48s |  506704 ko | fiat-java/src/FiatSecp256K1MontgomeryScalar.java                  |   0m15.89s |  508152 ko || +0m00.58s ||     -1448 ko |   +3.71% |         -0.28%
      0m16.37s |  532700 ko | fiat-bedrock2/src/curve25519_scalar_32.c                          |   0m16.47s |  561952 ko || -0m00.09s ||    -29252 ko |   -0.60% |         -5.20%
      0m16.37s |  527676 ko | fiat-json/src/p256_scalar_32.json                                 |   0m16.55s |  550516 ko || -0m00.17s ||    -22840 ko |   -1.08% |         -4.14%
      0m16.29s | 2055344 ko | ExtractionHaskell/with_bedrock2_unsaturated_solinas.hs            |   0m16.02s | 2032356 ko || +0m00.26s ||     22988 ko |   +1.68% |         +1.13%
      0m16.26s |  480716 ko | fiat-rust/src/p256_scalar_32.rs                                   |   0m16.35s |  451796 ko || -0m00.08s ||     28920 ko |   -0.55% |         +6.40%
      0m16.19s |  494352 ko | fiat-go/32/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go |   0m16.30s |  436412 ko || -0m00.10s ||     57940 ko |   -0.67% |        +13.27%
      0m16.16s | 2056824 ko | ExtractionHaskell/bedrock2_unsaturated_solinas.hs                 |   0m15.98s | 2031116 ko || +0m00.17s ||     25708 ko |   +1.12% |         +1.26%
      0m16.14s |  503672 ko | fiat-bedrock2/src/secp256k1_montgomery_32.c                       |   0m16.40s |  545704 ko || -0m00.25s ||    -42032 ko |   -1.58% |         -7.70%
      0m16.04s |  480428 ko | fiat-go/32/p256scalar/p256scalar.go                               |   0m16.21s |  443600 ko || -0m00.17s ||     36828 ko |   -1.04% |         +8.30%
      0m16.04s |  496756 ko | fiat-zig/src/secp256k1_montgomery_scalar_32.zig                   |   0m16.10s |  501916 ko || -0m00.06s ||     -5160 ko |   -0.37% |         -1.02%
      0m16.02s |  489128 ko | fiat-zig/src/p256_scalar_32.zig                                   |   0m16.08s |  439752 ko || -0m00.05s ||     49376 ko |   -0.37% |        +11.22%
      0m16.01s |  503984 ko | fiat-rust/src/secp256k1_montgomery_scalar_32.rs                   |   0m16.08s |  440028 ko || -0m00.06s ||     63956 ko |   -0.43% |        +14.53%
      0m15.93s |  490732 ko | fiat-c/src/p256_scalar_32.c                                       |   0m15.93s |  480884 ko || +0m00.00s ||      9848 ko |   +0.00% |         +2.04%
      0m15.90s |  486180 ko | fiat-java/src/FiatCurve25519Scalar.java                           |   0m16.31s |  435648 ko || -0m00.40s ||     50532 ko |   -2.51% |        +11.59%
      0m15.79s |  495508 ko | fiat-json/src/secp256k1_montgomery_32.json                        |   0m15.93s |  553532 ko || -0m00.14s ||    -58024 ko |   -0.87% |        -10.48%
      0m15.78s |  476920 ko | fiat-c/src/secp256k1_montgomery_scalar_32.c                       |   0m15.82s |  443512 ko || -0m00.04s ||     33408 ko |   -0.25% |         +7.53%
      0m15.76s | 1973368 ko | ExtractionHaskell/unsaturated_solinas.hs                          |   0m15.46s | 1939424 ko || +0m00.29s ||     33944 ko |   +1.94% |         +1.75%
      0m15.76s |  488488 ko | fiat-json/src/curve25519_scalar_32.json                           |   0m16.04s |  542208 ko || -0m00.27s ||    -53720 ko |   -1.74% |         -9.90%
      0m15.76s |  478272 ko | fiat-zig/src/secp256k1_montgomery_32.zig                          |   0m15.94s |  496368 ko || -0m00.17s ||    -18096 ko |   -1.12% |         -3.64%
      0m15.74s |  502548 ko | fiat-rust/src/secp256k1_montgomery_32.rs                          |   0m15.76s |  496384 ko || -0m00.01s ||      6164 ko |   -0.12% |         +1.24%
      0m15.66s |  494864 ko | fiat-go/32/secp256k1montgomery/secp256k1montgomery.go             |   0m15.69s |  494948 ko || -0m00.02s ||       -84 ko |   -0.19% |         -0.01%
      0m15.66s |  440572 ko | fiat-java/src/FiatSecp256K1Montgomery.java                        |   0m15.74s |  504796 ko || -0m00.08s ||    -64224 ko |   -0.50% |        -12.72%
      0m15.65s |  473036 ko | fiat-zig/src/curve25519_scalar_32.zig                             |   0m15.70s |  491508 ko || -0m00.04s ||    -18472 ko |   -0.31% |         -3.75%
      0m15.57s |  498380 ko | fiat-json/src/secp256k1_montgomery_scalar_32.json                 |   0m16.14s |  567328 ko || -0m00.57s ||    -68948 ko |   -3.53% |        -12.15%
      0m15.54s | 1106180 ko | Bedrock/Field/Translation/Proofs/Cmd.vo                           |   0m15.58s | 1105256 ko || -0m00.04s ||       924 ko |   -0.25% |         +0.08%
      0m15.52s |  485872 ko | fiat-go/32/curve25519scalar/curve25519scalar.go                   |   0m15.53s |  483400 ko || -0m00.00s ||      2472 ko |   -0.06% |         +0.51%
      0m15.49s |  485832 ko | fiat-c/src/curve25519_scalar_32.c                                 |   0m15.43s |  450744 ko || +0m00.06s ||     35088 ko |   +0.38% |         +7.78%
      0m15.40s | 1126272 ko | Bedrock/Field/Synthesis/New/Signature.vo                          |   0m15.37s | 1128492 ko || +0m00.03s ||     -2220 ko |   +0.19% |         -0.19%
      0m15.40s | 1980912 ko | ExtractionHaskell/with_bedrock2_dettman_multiplication.hs         |   0m15.01s | 1952584 ko || +0m00.39s ||     28328 ko |   +2.59% |         +1.45%
      0m15.38s |  507964 ko | fiat-bedrock2/src/p256_32.c                                       |   0m15.49s |  528008 ko || -0m00.10s ||    -20044 ko |   -0.71% |         -3.79%
      0m15.37s |  477376 ko | fiat-c/src/secp256k1_montgomery_32.c                              |   0m15.35s |  494284 ko || +0m00.01s ||    -16908 ko |   +0.13% |         -3.42%
      0m15.34s | 1980092 ko | ExtractionHaskell/bedrock2_dettman_multiplication.hs              |   0m15.05s | 1952380 ko || +0m00.28s ||     27712 ko |   +1.92% |         +1.41%
      0m15.19s | 1979336 ko | ExtractionHaskell/with_bedrock2_base_conversion.hs                |   0m14.79s | 1947364 ko || +0m00.40s ||     31972 ko |   +2.70% |         +1.64%
      0m15.16s |  492160 ko | fiat-rust/src/curve25519_scalar_32.rs                             |   0m16.08s |  483312 ko || -0m00.91s ||      8848 ko |   -5.72% |         +1.83%
      0m15.10s | 1979572 ko | ExtractionHaskell/bedrock2_base_conversion.hs                     |   0m14.77s | 1944640 ko || +0m00.33s ||     34932 ko |   +2.23% |         +1.79%
      0m15.03s | 1941608 ko | ExtractionHaskell/with_bedrock2_saturated_solinas.hs              |   0m14.13s | 1944032 ko || +0m00.89s ||     -2424 ko |   +6.36% |         -0.12%
      0m15.02s |  485556 ko | fiat-zig/src/p256_32.zig                                          |   0m15.19s |  485712 ko || -0m00.16s ||      -156 ko |   -1.11% |         -0.03%
      0m15.00s | 1941740 ko | ExtractionHaskell/bedrock2_saturated_solinas.hs                   |   0m14.85s | 1945624 ko || +0m00.15s ||     -3884 ko |   +1.01% |         -0.19%
      0m14.97s |  486152 ko | fiat-rust/src/p256_32.rs                                          |   0m14.85s |  481172 ko || +0m00.12s ||      4980 ko |   +0.80% |         +1.03%
      0m14.95s |  476920 ko | fiat-json/src/p256_32.json                                        |   0m15.11s |  516088 ko || -0m00.16s ||    -39168 ko |   -1.05% |         -7.58%
      0m14.90s |  482212 ko | fiat-go/32/p256/p256.go                                           |   0m15.07s |  477140 ko || -0m00.16s ||      5072 ko |   -1.12% |         +1.06%
      0m14.78s | 1881064 ko | ExtractionHaskell/saturated_solinas.hs                            |   0m14.38s | 1876668 ko || +0m00.39s ||      4396 ko |   +2.78% |         +0.23%
      0m14.72s |  491212 ko | fiat-java/src/FiatP256.java                                       |   0m14.80s |  487264 ko || -0m00.08s ||      3948 ko |   -0.54% |         +0.81%
      0m14.41s | 1894732 ko | ExtractionHaskell/base_conversion.hs                              |   0m14.15s | 1859860 ko || +0m00.25s ||     34872 ko |   +1.83% |         +1.87%
      0m14.41s |  480184 ko | fiat-c/src/p256_32.c                                              |   0m14.49s |  478564 ko || -0m00.08s ||      1620 ko |   -0.55% |         +0.33%
      0m13.98s | 1903704 ko | ExtractionHaskell/dettman_multiplication.hs                       |   0m14.51s | 1885976 ko || -0m00.52s ||     17728 ko |   -3.65% |         +0.93%
      0m13.15s | 1551964 ko | Bedrock/Field/Synthesis/New/WordByWordMontgomery.vo               |   0m13.08s | 1549676 ko || +0m00.07s ||      2288 ko |   +0.53% |         +0.14%
      0m10.83s |  249924 ko | fiat-bedrock2/src/p384_scalar_64.c                                |   0m10.84s |  248224 ko || -0m00.00s ||      1700 ko |   -0.09% |         +0.68%
      0m10.76s |  225128 ko | fiat-json/src/p384_scalar_64.json                                 |   0m10.90s |  250920 ko || -0m00.14s ||    -25792 ko |   -1.28% |        -10.27%
      0m10.75s |  206312 ko | fiat-rust/src/p384_scalar_64.rs                                   |   0m10.59s |  206860 ko || +0m00.16s ||      -548 ko |   +1.51% |         -0.26%
      0m10.69s |  199568 ko | fiat-go/64/p384scalar/p384scalar.go                               |   0m10.70s |  209512 ko || -0m00.00s ||     -9944 ko |   -0.09% |         -4.74%
      0m10.60s |  204368 ko | fiat-c/src/p384_scalar_64.c                                       |   0m10.54s |  194796 ko || +0m00.06s ||      9572 ko |   +0.56% |         +4.91%
      0m10.60s |  204528 ko | fiat-zig/src/p384_scalar_64.zig                                   |   0m10.54s |  181860 ko || +0m00.06s ||     22668 ko |   +0.56% |        +12.46%
      0m10.26s | 1005728 ko | BoundsPipeline.vo                                                 |   0m10.25s |  999828 ko || +0m00.00s ||      5900 ko |   +0.09% |         +0.59%
      0m09.25s | 1247096 ko | Bedrock/End2End/X25519/MontgomeryLadderProperties.vo              |   0m09.24s | 1245416 ko || +0m00.00s ||      1680 ko |   +0.10% |         +0.13%
      0m09.12s |  238524 ko | fiat-json/src/p384_64.json                                        |   0m09.13s |  231860 ko || -0m00.01s ||      6664 ko |   -0.10% |         +2.87%
      0m09.10s |  255620 ko | fiat-bedrock2/src/p384_64.c                                       |   0m09.08s |  247996 ko || +0m00.01s ||      7624 ko |   +0.22% |         +3.07%
      0m09.09s |  198100 ko | fiat-zig/src/p384_64.zig                                          |   0m08.66s |  194384 ko || +0m00.42s ||      3716 ko |   +4.96% |         +1.91%
      0m09.01s |  362652 ko | fiat-bedrock2/src/p224_32.c                                       |   0m09.01s |  359804 ko || +0m00.00s ||      2848 ko |   +0.00% |         +0.79%
      0m09.01s |  212280 ko | fiat-go/64/p384/p384.go                                           |   0m09.09s |  209752 ko || -0m00.08s ||      2528 ko |   -0.88% |         +1.20%
      0m08.92s |  204084 ko | fiat-rust/src/p384_64.rs                                          |   0m08.95s |  193392 ko || -0m00.02s ||     10692 ko |   -0.33% |         +5.52%
      0m08.89s |  321540 ko | fiat-json/src/p224_32.json                                        |   0m08.82s |  345768 ko || +0m00.07s ||    -24228 ko |   +0.79% |         -7.00%
      0m08.84s |  190600 ko | fiat-c/src/p384_64.c                                              |   0m08.77s |  192560 ko || +0m00.07s ||     -1960 ko |   +0.79% |         -1.01%
      0m08.81s |  304848 ko | fiat-rust/src/p224_32.rs                                          |   0m08.76s |  295376 ko || +0m00.05s ||      9472 ko |   +0.57% |         +3.20%
      0m08.69s |  297896 ko | fiat-go/32/p224/p224.go                                           |   0m08.77s |  272772 ko || -0m00.08s ||     25124 ko |   -0.91% |         +9.21%
      0m08.69s |  281356 ko | fiat-zig/src/p224_32.zig                                          |   0m08.37s |  304612 ko || +0m00.32s ||    -23256 ko |   +3.82% |         -7.63%
      0m08.68s |  309088 ko | fiat-java/src/FiatP224.java                                       |   0m08.71s |  309156 ko || -0m00.03s ||       -68 ko |   -0.34% |         -0.02%
      0m08.49s |  291880 ko | fiat-c/src/p224_32.c                                              |   0m08.54s |  294312 ko || -0m00.04s ||     -2432 ko |   -0.58% |         -0.82%
      0m08.31s |  140296 ko | fiat-json/src/p448_solinas_32.json                                |   0m08.31s |  138912 ko || +0m00.00s ||      1384 ko |   +0.00% |         +0.99%
      0m08.17s |  628572 ko | Rewriter/Passes/RelaxBitwidthAdcSbb.vo                            |   0m08.16s |  628844 ko || +0m00.00s ||      -272 ko |   +0.12% |         -0.04%
      0m08.08s |  997520 ko | PushButtonSynthesis/BaseConversion.vo                             |   0m07.98s |  996644 ko || +0m00.09s ||       876 ko |   +1.25% |         +0.08%
      0m07.95s |   79240 ko | fiat-rust/src/p448_solinas_32.rs                                  |   0m07.90s |   81472 ko || +0m00.04s ||     -2232 ko |   +0.63% |         -2.73%
      0m07.91s |   73556 ko | fiat-zig/src/p448_solinas_32.zig                                  |   0m07.94s |   81352 ko || -0m00.03s ||     -7796 ko |   -0.37% |         -9.58%
      0m07.84s |  971052 ko | PushButtonSynthesis/SmallExamples.vo                              |   0m07.79s |  964172 ko || +0m00.04s ||      6880 ko |   +0.64% |         +0.71%
      0m07.83s |   78696 ko | fiat-c/src/p448_solinas_32.c                                      |   0m07.89s |   79452 ko || -0m00.05s ||      -756 ko |   -0.76% |         -0.95%
      0m07.15s | 1013368 ko | PushButtonSynthesis/Primitives.vo                                 |   0m07.25s | 1014352 ko || -0m00.09s ||      -984 ko |   -1.37% |         -0.09%
      0m06.38s |  993404 ko | PushButtonSynthesis/SolinasReduction.vo                           |   0m06.38s |  991732 ko || +0m00.00s ||      1672 ko |   +0.00% |         +0.16%
      0m06.27s |  616792 ko | Rewriter/Passes/NoSelect.vo                                       |   0m06.26s |  615456 ko || +0m00.00s ||      1336 ko |   +0.15% |         +0.21%
      0m06.26s |   59768 ko | fiat-go/64/p521/p521.go                                           |   0m06.26s |   59896 ko || +0m00.00s ||      -128 ko |   +0.00% |         -0.21%
      0m05.56s |   75132 ko | fiat-bedrock2/src/p521_64.c                                       |   0m05.58s |   79276 ko || -0m00.02s ||     -4144 ko |   -0.35% |         -5.22%
      0m05.43s | 1138132 ko | Bedrock/Field/Synthesis/New/UnsaturatedSolinas.vo                 |   0m05.18s | 1135688 ko || +0m00.25s ||      2444 ko |   +4.82% |         +0.21%
      0m05.42s | 1049972 ko | CLI.vo                                                            |   0m05.47s | 1047920 ko || -0m00.04s ||      2052 ko |   -0.91% |         +0.19%
      0m05.41s |   44772 ko | fiat-c/src/p521_64.c                                              |   0m04.88s |   44296 ko || +0m00.53s ||       476 ko |  +10.86% |         +1.07%
      0m05.38s |   44544 ko | fiat-zig/src/p521_64.zig                                          |   0m04.82s |   45056 ko || +0m00.55s ||      -512 ko |  +11.61% |         -1.13%
      0m05.36s |   61792 ko | fiat-json/src/p521_64.json                                        |   0m05.41s |   62016 ko || -0m00.04s ||      -224 ko |   -0.92% |         -0.36%
      0m05.30s |  997084 ko | PushButtonSynthesis/BarrettReduction.vo                           |   0m05.37s |  989500 ko || -0m00.07s ||      7584 ko |   -1.30% |         +0.76%
      0m04.81s |   44036 ko | fiat-rust/src/p521_64.rs                                          |   0m05.37s |   44100 ko || -0m00.56s ||       -64 ko |  -10.42% |         -0.14%
      0m04.41s |  975388 ko | PushButtonSynthesis/DettmanMultiplication.vo                      |   0m04.32s |  978264 ko || +0m00.08s ||     -2876 ko |   +2.08% |         -0.29%
      0m04.11s | 1004444 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Cmd.vo           |   0m04.15s | 1002344 ko || -0m00.04s ||      2100 ko |   -0.96% |         +0.20%
      0m04.06s |  980500 ko | PushButtonSynthesis/SaturatedSolinas.vo                           |   0m04.08s |  986200 ko || -0m00.02s ||     -5700 ko |   -0.49% |         -0.57%
      0m03.98s | 1409300 ko | Bedrock/Everything.vo                                             |   0m04.11s | 1407144 ko || -0m00.13s ||      2156 ko |   -3.16% |         +0.15%
      0m03.84s | 1275180 ko | Everything.vo                                                     |   0m03.77s | 1273232 ko || +0m00.06s ||      1948 ko |   +1.85% |         +0.15%
      0m03.80s |  982844 ko | PushButtonSynthesis/FancyMontgomeryReduction.vo                   |   0m03.77s |  981160 ko || +0m00.02s ||      1684 ko |   +0.79% |         +0.17%
      0m03.58s |  997692 ko | Rewriter/PerfTesting/Core.vo                                      |   0m03.58s |  993660 ko || +0m00.00s ||      4032 ko |   +0.00% |         +0.40%
      0m03.52s | 1232872 ko | PerfTesting/PerfTestPrint.vo                                      |   0m03.55s | 1231676 ko || -0m00.02s ||      1196 ko |   -0.84% |         +0.09%
      0m03.21s | 1008336 ko | StandaloneMonadicUtils.vo                                         |   0m03.16s | 1006476 ko || +0m00.04s ||      1860 ko |   +1.58% |         +0.18%
      0m03.14s |  567764 ko | Rewriter/Passes/ArithWithRelaxedCasts.vo                          |   0m03.20s |  567876 ko || -0m00.06s ||      -112 ko |   -1.87% |         -0.01%
      0m03.13s |  996084 ko | Bedrock/Field/Translation/Proofs/ValidComputable/Func.vo          |   0m03.09s |  994320 ko || +0m00.04s ||      1764 ko |   +1.29% |         +0.17%
      0m03.13s | 1037072 ko | Bedrock/Standalone/StandaloneHaskellMain.vo                       |   0m03.15s | 1034988 ko || -0m00.02s ||      2084 ko |   -0.63% |         +0.20%
      0m03.10s | 1035384 ko | Bedrock/Standalone/StandaloneJsOfOCamlMain.vo                     |   0m03.05s | 1033372 ko || +0m00.05s ||      2012 ko |   +1.63% |         +0.19%
      0m03.08s | 1005344 ko | StandaloneHaskellMain.vo                                          |   0m03.04s | 1002224 ko || +0m00.04s ||      3120 ko |   +1.31% |         +0.31%
      0m03.02s | 1037312 ko | Bedrock/Standalone/StandaloneOCamlMain.vo                         |   0m03.12s | 1035308 ko || -0m00.10s ||      2004 ko |   -3.20% |         +0.19%
      0m03.02s |  575508 ko | Rewriter/Passes/AddAssocLeft.vo                                   |   0m02.92s |  577532 ko || +0m00.10s ||     -2024 ko |   +3.42% |         -0.35%
      0m03.01s |  999364 ko | Bedrock/Field/Stringification/Stringification.vo                  |   0m03.07s |  997148 ko || -0m00.06s ||      2216 ko |   -1.95% |         +0.22%
      0m03.00s |  938636 ko | Bedrock/Field/Translation/Cmd.vo                                  |   0m03.06s |  942412 ko || -0m00.06s ||     -3776 ko |   -1.96% |         -0.40%
      0m02.98s |  939264 ko | Bedrock/Field/Translation/Func.vo                                 |   0m02.94s |  942940 ko || +0m00.04s ||     -3676 ko |   +1.36% |         -0.38%
      0m02.97s | 1012892 ko | StandaloneJsOfOCamlMain.vo                                        |   0m03.03s | 1011080 ko || -0m00.05s ||      1812 ko |   -1.98% |         +0.17%
      0m02.96s | 1012548 ko | StandaloneOCamlMain.vo                                            |   0m03.05s | 1010580 ko || -0m00.08s ||      1968 ko |   -2.95% |         +0.19%
      0m02.92s | 1022664 ko | Rewriter/PerfTesting/StandaloneOCamlMain.vo                       |   0m02.89s | 1021240 ko || +0m00.02s ||      1424 ko |   +1.03% |         +0.13%
      0m02.89s |  971328 ko | Bedrock/Field/Translation/Parameters/Defaults64.vo                |   0m02.86s |  974964 ko || +0m00.03s ||     -3636 ko |   +1.04% |         -0.37%
      0m02.88s |  995476 ko | Bedrock/Field/Synthesis/New/ComputedOp.vo                         |   0m02.89s |  993312 ko || -0m00.01s ||      2164 ko |   -0.34% |         +0.21%
      0m02.88s |  971372 ko | Bedrock/Field/Translation/Parameters/FE310.vo                     |   0m02.87s |  975136 ko || +0m00.00s ||     -3764 ko |   +0.34% |         -0.38%
      0m02.86s |  964220 ko | Bedrock/Field/Translation/Parameters/Defaults.vo                  |   0m02.84s |  967560 ko || +0m00.02s ||     -3340 ko |   +0.70% |         -0.34%
      0m02.85s |  971540 ko | Bedrock/Field/Translation/Parameters/Defaults32.vo                |   0m02.88s |  975024 ko || -0m00.02s ||     -3484 ko |   -1.04% |         -0.35%
      0m02.79s |  100444 ko | fiat-bedrock2/src/p256_scalar_64.c                                |   0m02.78s |  101444 ko || +0m00.01s ||     -1000 ko |   +0.35% |         -0.98%
      0m02.76s |  101104 ko | fiat-bedrock2/src/secp256k1_montgomery_scalar_64.c                |   0m02.71s |   99348 ko || +0m00.04s ||      1756 ko |   +1.84% |         +1.76%
      0m02.76s |   88556 ko | fiat-json/src/p256_scalar_64.json                                 |   0m02.76s |   87104 ko || +0m00.00s ||      1452 ko |   +0.00% |         +1.66%
      0m02.74s |   87088 ko | fiat-json/src/secp256k1_montgomery_scalar_64.json                 |   0m02.68s |   89884 ko || +0m00.06s ||     -2796 ko |   +2.23% |         -3.11%
      0m02.69s |  565928 ko | Rewriter/Passes/FlattenThunkedRects.vo                            |   0m02.70s |  566044 ko || -0m00.01s ||      -116 ko |   -0.37% |         -0.02%
      0m02.67s |   71188 ko | fiat-rust/src/p256_scalar_64.rs                                   |   0m02.70s |   72632 ko || -0m00.03s ||     -1444 ko |   -1.11% |         -1.98%
      0m02.65s |   71568 ko | fiat-c/src/p256_scalar_64.c                                       |   0m02.67s |   70884 ko || -0m00.02s ||       684 ko |   -0.74% |         +0.96%
      0m02.65s |   74164 ko | fiat-c/src/secp256k1_montgomery_scalar_64.c                       |   0m02.65s |   73872 ko || +0m00.00s ||       292 ko |   +0.00% |         +0.39%
      0m02.65s |   77536 ko | fiat-go/64/p256scalar/p256scalar.go                               |   0m02.70s |   77236 ko || -0m00.05s ||       300 ko |   -1.85% |         +0.38%
      0m02.65s |   73976 ko | fiat-rust/src/secp256k1_montgomery_scalar_64.rs                   |   0m02.65s |   73244 ko || +0m00.00s ||       732 ko |   +0.00% |         +0.99%
      0m02.65s |   72064 ko | fiat-zig/src/p256_scalar_64.zig                                   |   0m02.67s |   70600 ko || -0m00.02s ||      1464 ko |   -0.74% |         +2.07%
      0m02.64s |   78004 ko | fiat-go/64/secp256k1montgomeryscalar/secp256k1montgomeryscalar.go |   0m02.71s |   77792 ko || -0m00.06s ||       212 ko |   -2.58% |         +0.27%
      0m02.63s |   70176 ko | fiat-zig/src/secp256k1_montgomery_scalar_64.zig                   |   0m02.68s |   69524 ko || -0m00.05s ||       652 ko |   -1.86% |         +0.93%
      0m02.58s |   57468 ko | fiat-go/64/p448solinas/p448solinas.go                             |   0m02.57s |   58220 ko || +0m00.01s ||      -752 ko |   +0.38% |         -1.29%
      0m02.47s |   87764 ko | fiat-json/src/secp256k1_montgomery_64.json                        |   0m02.40s |   89584 ko || +0m00.07s ||     -1820 ko |   +2.91% |         -2.03%
      0m02.44s |   98212 ko | fiat-bedrock2/src/secp256k1_montgomery_64.c                       |   0m02.37s |   97792 ko || +0m00.06s ||       420 ko |   +2.95% |         +0.42%
      0m02.42s |   72468 ko | fiat-rust/src/secp256k1_montgomery_64.rs                          |   0m02.43s |   72696 ko || -0m00.01s ||      -228 ko |   -0.41% |         -0.31%
      0m02.40s |   74216 ko | fiat-go/64/secp256k1montgomery/secp256k1montgomery.go             |   0m02.36s |   73876 ko || +0m00.04s ||       340 ko |   +1.69% |         +0.46%
      0m02.39s |   71156 ko | fiat-zig/src/secp256k1_montgomery_64.zig                          |   0m02.38s |   70956 ko || +0m00.01s ||       200 ko |   +0.42% |         +0.28%
      0m02.35s |   70164 ko | fiat-c/src/secp256k1_montgomery_64.c                              |   0m02.35s |   72620 ko || +0m00.00s ||     -2456 ko |   +0.00% |         -3.38%
      0m02.30s |   75052 ko | fiat-go/64/curve25519scalar/curve25519scalar.go                   |   0m02.28s |   72824 ko || +0m00.02s ||      2228 ko |   +0.87% |         +3.05%
      0m02.29s |   93720 ko | fiat-bedrock2/src/curve25519_scalar_64.c                          |   0m02.30s |   93748 ko || -0m00.00s ||       -28 ko |   -0.43% |         -0.02%
      0m02.27s |  562884 ko | Rewriter/Passes/StripLiteralCasts.vo                              |   0m02.27s |  564888 ko || +0m00.00s ||     -2004 ko |   +0.00% |         -0.35%
      0m02.26s |   71596 ko | fiat-rust/src/curve25519_scalar_64.rs                             |   0m02.29s |   71196 ko || -0m00.03s ||       400 ko |   -1.31% |         +0.56%
      0m02.25s |   85432 ko | fiat-json/src/curve25519_scalar_64.json                           |   0m02.35s |   86952 ko || -0m00.10s ||     -1520 ko |   -4.25% |         -1.74%
      0m02.25s |   70124 ko | fiat-zig/src/curve25519_scalar_64.zig                             |   0m02.25s |   68708 ko || +0m00.00s ||      1416 ko |   +0.00% |         +2.06%
      0m02.22s |  566620 ko | Rewriter/Passes/UnfoldValueBarrier.vo                             |   0m02.28s |  566536 ko || -0m00.05s ||        84 ko |   -2.63% |         +0.01%
      0m02.19s |   69788 ko | fiat-c/src/curve25519_scalar_64.c                                 |   0m02.21s |   69340 ko || -0m00.02s ||       448 ko |   -0.90% |         +0.64%
      0m02.15s |  567208 ko | Rewriter/Passes/ToFancy.vo                                        |   0m02.20s |  567212 ko || -0m00.05s ||        -4 ko |   -2.27% |         -0.00%
      0m02.13s |   45116 ko | fiat-go/32/curve25519/curve25519.go                               |   0m02.13s |   43576 ko || +0m00.00s ||      1540 ko |   +0.00% |         +3.53%
      0m02.05s |   77620 ko | fiat-bedrock2/src/p448_solinas_64.c                               |   0m02.07s |   77308 ko || -0m00.02s ||       312 ko |   -0.96% |         +0.40%
      0m02.00s |   75804 ko | fiat-bedrock2/src/curve25519_32.c                                 |   0m01.98s |   76816 ko || +0m00.02s ||     -1012 ko |   +1.01% |         -1.31%
      0m01.97s |   59824 ko | fiat-json/src/p448_solinas_64.json                                |   0m01.97s |   59328 ko || +0m00.00s ||       496 ko |   +0.00% |         +0.83%
      0m01.94s |   43708 ko | fiat-zig/src/p448_solinas_64.zig                                  |   0m01.90s |   42340 ko || +0m00.04s ||      1368 ko |   +2.10% |         +3.23%
      0m01.92s |   42480 ko | fiat-c/src/p448_solinas_64.c                                      |   0m01.89s |   41788 ko || +0m00.03s ||       692 ko |   +1.58% |         +1.65%
      0m01.92s |   42196 ko | fiat-rust/src/p448_solinas_64.rs                                  |   0m01.92s |   43676 ko || +0m00.00s ||     -1480 ko |   +0.00% |         -3.38%
      0m01.83s |   85452 ko | fiat-json/src/p224_64.json                                        |   0m01.80s |   88012 ko || +0m00.03s ||     -2560 ko |   +1.66% |         -2.90%
      0m01.83s |   87112 ko | fiat-json/src/p256_64.json                                        |   0m01.81s |   86432 ko || +0m00.02s ||       680 ko |   +1.10% |         +0.78%
      0m01.82s |   96320 ko | fiat-bedrock2/src/p224_64.c                                       |   0m01.87s |   95588 ko || -0m00.05s ||       732 ko |   -2.67% |         +0.76%
      0m01.81s |   41768 ko | fiat-zig/src/curve25519_32.zig                                    |   0m01.79s |   41492 ko || +0m00.02s ||       276 ko |   +1.11% |         +0.66%
      0m01.81s |   69796 ko | fiat-zig/src/p224_64.zig                                          |   0m01.79s |   69264 ko || +0m00.02s ||       532 ko |   +1.11% |         +0.76%
      0m01.80s |   94100 ko | fiat-bedrock2/src/p256_64.c                                       |   0m01.77s |   91532 ko || +0m00.03s ||      2568 ko |   +1.69% |         +2.80%
      0m01.80s |   71228 ko | fiat-rust/src/p224_64.rs                                          |   0m01.80s |   68468 ko || +0m00.00s ||      2760 ko |   +0.00% |         +4.03%
      0m01.79s |   41952 ko | fiat-java/src/FiatCurve25519.java                                 |   0m01.74s |   42324 ko || +0m00.05s ||      -372 ko |   +2.87% |         -0.87%
      0m01.78s |   59180 ko | fiat-json/src/curve25519_32.json                                  |   0m01.89s |   60524 ko || -0m00.10s ||     -1344 ko |   -5.82% |         -2.22%
      0m01.76s |   40544 ko | fiat-c/src/curve25519_32.c                                        |   0m01.76s |   40876 ko || +0m00.00s ||      -332 ko |   +0.00% |         -0.81%
      0m01.76s |   73780 ko | fiat-go/64/p224/p224.go                                           |   0m01.75s |   73584 ko || +0m00.01s ||       196 ko |   +0.57% |         +0.26%
      0m01.76s |   73468 ko | fiat-go/64/p256/p256.go                                           |   0m01.73s |   71364 ko || +0m00.03s ||      2104 ko |   +1.73% |         +2.94%
      0m01.75s |   69560 ko | fiat-zig/src/p256_64.zig                                          |   0m01.74s |   70000 ko || +0m00.01s ||      -440 ko |   +0.57% |         -0.62%
      0m01.74s |   41016 ko | fiat-rust/src/curve25519_32.rs                                    |   0m01.80s |   41968 ko || -0m00.06s ||      -952 ko |   -3.33% |         -2.26%
      0m01.72s |   68600 ko | fiat-c/src/p224_64.c                                              |   0m01.74s |   69000 ko || -0m00.02s ||      -400 ko |   -1.14% |         -0.57%
      0m01.70s |   69300 ko | fiat-c/src/p256_64.c                                              |   0m01.68s |   68352 ko || +0m00.02s ||       948 ko |   +1.19% |         +1.38%
      0m01.70s |   69860 ko | fiat-rust/src/p256_64.rs                                          |   0m01.74s |   70856 ko || -0m00.04s ||      -996 ko |   -2.29% |         -1.40%
      0m01.66s |  617724 ko | CompilersTestCases.vo                                             |   0m01.67s |  614372 ko || -0m00.01s ||      3352 ko |   -0.59% |         +0.54%
      0m01.43s |   63256 ko | fiat-bedrock2/src/secp256k1_dettman_32.c                          |   0m01.42s |   60252 ko || +0m00.01s ||      3004 ko |   +0.70% |         +4.98%
      0m01.22s |   32000 ko | fiat-go/32/secp256k1dettman/secp256k1dettman.go                   |   0m01.22s |   31548 ko || +0m00.00s ||       452 ko |   +0.00% |         +1.43%
      0m01.22s |   34668 ko | fiat-java/src/FiatSecp256K1Dettman.java                           |   0m01.22s |   33688 ko || +0m00.00s ||       980 ko |   +0.00% |         +2.90%
      0m01.22s |   49040 ko | fiat-json/src/secp256k1_dettman_32.json                           |   0m01.27s |   48936 ko || -0m00.05s ||       104 ko |   -3.93% |         +0.21%
      0m01.22s |   31852 ko | fiat-rust/src/secp256k1_dettman_32.rs                             |   0m01.21s |   31532 ko || +0m00.01s ||       320 ko |   +0.82% |         +1.01%
      0m01.22s |   32152 ko | fiat-zig/src/secp256k1_dettman_32.zig                             |   0m01.22s |   31720 ko || +0m00.00s ||       432 ko |   +0.00% |         +1.36%
      0m01.20s |   33024 ko | fiat-c/src/secp256k1_dettman_32.c                                 |   0m01.21s |   32708 ko || -0m00.01s ||       316 ko |   -0.82% |         +0.96%
      0m00.93s |  571828 ko | Rewriter/All.vo                                                   |   0m00.98s |  568380 ko || -0m00.04s ||      3448 ko |   -5.10% |         +0.60%
      0m00.85s |  456204 ko | Rewriter/Rules.vo                                                 |   0m00.86s |  455820 ko || -0m00.01s ||       384 ko |   -1.16% |         +0.08%
      0m00.62s |   37376 ko | fiat-go/64/curve25519/curve25519.go                               |   0m00.62s |   36976 ko || +0m00.00s ||       400 ko |   +0.00% |         +1.08%
      0m00.50s |   43752 ko | fiat-bedrock2/src/curve25519_64.c                                 |   0m00.50s |   43516 ko || +0m00.00s ||       236 ko |   +0.00% |         +0.54%
      0m00.50s |   40228 ko | fiat-json/src/curve25519_64.json                                  |   0m00.48s |   39756 ko || +0m00.02s ||       472 ko |   +4.16% |         +1.18%
      0m00.48s |   31900 ko | fiat-zig/src/curve25519_64.zig                                    |   0m00.48s |   30460 ko || +0m00.00s ||      1440 ko |   +0.00% |         +4.72%
      0m00.47s |  110692 ko | ExtractionOCaml/with_bedrock2_fiat_crypto.cmi                     |   0m00.44s |  110484 ko || +0m00.02s ||       208 ko |   +6.81% |         +0.18%
      0m00.46s |  106976 ko | ExtractionOCaml/fiat_crypto.cmi                                   |   0m00.44s |  106972 ko || +0m00.02s ||         4 ko |   +4.54% |         +0.00%
      0m00.46s |   31484 ko | fiat-rust/src/curve25519_64.rs                                    |   0m00.47s |   31292 ko || -0m00.00s ||       192 ko |   -2.12% |         +0.61%
      0m00.45s |  105408 ko | ExtractionOCaml/base_conversion.cmi                               |   0m00.43s |  105420 ko || +0m00.02s ||       -12 ko |   +4.65% |         -0.01%
      0m00.45s |  108780 ko | ExtractionOCaml/bedrock2_unsaturated_solinas.cmi                  |   0m00.45s |  108964 ko || +0m00.00s ||      -184 ko |   +0.00% |         -0.16%
      0m00.45s |  107220 ko | ExtractionOCaml/with_bedrock2_base_conversion.cmi                 |   0m00.41s |  107104 ko || +0m00.04s ||       116 ko |   +9.75% |         +0.10%
      0m00.45s |   31516 ko | fiat-c/src/curve25519_64.c                                        |   0m00.45s |   31172 ko || +0m00.00s ||       344 ko |   +0.00% |         +1.10%
      0m00.44s |  107500 ko | ExtractionOCaml/bedrock2_dettman_multiplication.cmi               |   0m00.47s |  107408 ko || -0m00.02s ||        92 ko |   -6.38% |         +0.08%
      0m00.44s |  109688 ko | ExtractionOCaml/bedrock2_fiat_crypto.cmi                          |   0m00.45s |  109576 ko || -0m00.01s ||       112 ko |   -2.22% |         +0.10%
      0m00.44s |  106768 ko | ExtractionOCaml/bedrock2_solinas_reduction.cmi                    |   0m00.45s |  106852 ko || -0m00.01s ||       -84 ko |   -2.22% |         -0.07%
      0m00.44s |  108500 ko | ExtractionOCaml/bedrock2_word_by_word_montgomery.cmi              |   0m00.47s |  108388 ko || -0m00.02s ||       112 ko |   -6.38% |         +0.10%
      0m00.44s |  104152 ko | ExtractionOCaml/dettman_multiplication.cmi                        |   0m00.44s |  104116 ko || +0m00.00s ||        36 ko |   +0.00% |         +0.03%
      0m00.44s |  105080 ko | ExtractionOCaml/solinas_reduction.cmi                             |   0m00.43s |  104852 ko || +0m00.01s ||       228 ko |   +2.32% |         +0.21%
      0m00.44s |  105748 ko | ExtractionOCaml/unsaturated_solinas.cmi                           |   0m00.44s |  105948 ko || +0m00.00s ||      -200 ko |   +0.00% |         -0.18%
      0m00.44s |  106800 ko | ExtractionOCaml/with_bedrock2_solinas_reduction.cmi               |   0m00.44s |  106716 ko || +0m00.00s ||        84 ko |   +0.00% |         +0.07%
      0m00.44s |  105460 ko | ExtractionOCaml/word_by_word_montgomery.cmi                       |   0m00.46s |  105440 ko || -0m00.02s ||        20 ko |   -4.34% |         +0.01%
      0m00.43s |  106940 ko | ExtractionOCaml/bedrock2_base_conversion.cmi                      |   0m00.45s |  107388 ko || -0m00.02s ||      -448 ko |   -4.44% |         -0.41%
      0m00.43s |  104764 ko | ExtractionOCaml/saturated_solinas.cmi                             |   0m00.44s |  104952 ko || -0m00.01s ||      -188 ko |   -2.27% |         -0.17%
      0m00.43s |  106872 ko | ExtractionOCaml/with_bedrock2_saturated_solinas.cmi               |   0m00.45s |  106864 ko || -0m00.02s ||         8 ko |   -4.44% |         +0.00%
      0m00.43s |  108272 ko | ExtractionOCaml/with_bedrock2_unsaturated_solinas.cmi             |   0m00.45s |  108168 ko || -0m00.02s ||       104 ko |   -4.44% |         +0.09%
      0m00.43s |  108648 ko | ExtractionOCaml/with_bedrock2_word_by_word_montgomery.cmi         |   0m00.44s |  108860 ko || -0m00.01s ||      -212 ko |   -2.27% |         -0.19%
      0m00.42s |  106768 ko | ExtractionOCaml/bedrock2_saturated_solinas.cmi                    |   0m00.44s |  106768 ko || -0m00.02s ||         0 ko |   -4.54% |         +0.00%
      0m00.42s |  107376 ko | ExtractionOCaml/with_bedrock2_dettman_multiplication.cmi          |   0m00.41s |  107212 ko || +0m00.01s ||       164 ko |   +2.43% |         +0.15%
      0m00.41s |   42764 ko | fiat-rust/src/curve25519_solinas_64.rs                            |   0m00.41s |   42420 ko || +0m00.00s ||       344 ko |   +0.00% |         +0.81%
      0m00.40s |   48292 ko | fiat-bedrock2/src/curve25519_solinas_64.c                         |   0m00.42s |   47448 ko || -0m00.01s ||       844 ko |   -4.76% |         +1.77%
      0m00.40s |   42028 ko | fiat-c/src/curve25519_solinas_64.c                                |   0m00.39s |   41920 ko || +0m00.01s ||       108 ko |   +2.56% |         +0.25%
      0m00.40s |   46448 ko | fiat-json/src/curve25519_solinas_64.json                          |   0m00.43s |   46028 ko || -0m00.02s ||       420 ko |   -6.97% |         +0.91%
      0m00.39s |   43412 ko | fiat-go/64/curve25519solinas/curve25519solinas.go                 |   0m00.42s |   43260 ko || -0m00.02s ||       152 ko |   -7.14% |         +0.35%
      0m00.39s |   42768 ko | fiat-zig/src/curve25519_solinas_64.zig                            |   0m00.40s |   41992 ko || -0m00.01s ||       776 ko |   -2.50% |         +1.84%
      0m00.30s |   29992 ko | fiat-go/32/poly1305/poly1305.go                                   |   0m00.29s |   29464 ko || +0m00.01s ||       528 ko |   +3.44% |         +1.79%
      0m00.26s |   38380 ko | fiat-bedrock2/src/poly1305_32.c                                   |   0m00.27s |   38752 ko || -0m00.01s ||      -372 ko |   -3.70% |         -0.95%
      0m00.24s |   34972 ko | fiat-json/src/poly1305_32.json                                    |   0m00.26s |   34748 ko || -0m00.02s ||       224 ko |   -7.69% |         +0.64%
      0m00.23s |   34312 ko | fiat-bedrock2/src/secp256k1_dettman_64.c                          |   0m00.22s |   33788 ko || +0m00.01s ||       524 ko |   +4.54% |         +1.55%
      0m00.23s |   28528 ko | fiat-zig/src/poly1305_32.zig                                      |   0m00.22s |   28356 ko || +0m00.01s ||       172 ko |   +4.54% |         +0.60%
      0m00.22s |   28592 ko | fiat-go/64/secp256k1dettman/secp256k1dettman.go                   |   0m00.23s |   28316 ko || -0m00.01s ||       276 ko |   -4.34% |         +0.97%
      0m00.22s |   28756 ko | fiat-java/src/FiatPoly1305.java                                   |   0m00.22s |   28688 ko || +0m00.00s ||        68 ko |   +0.00% |         +0.23%
      0m00.22s |   28888 ko | fiat-rust/src/poly1305_32.rs                                      |   0m00.22s |   28596 ko || +0m00.00s ||       292 ko |   +0.00% |         +1.02%
      0m00.21s |   28244 ko | fiat-c/src/poly1305_32.c                                          |   0m00.22s |   28308 ko || -0m00.01s ||       -64 ko |   -4.54% |         -0.22%
      0m00.19s |   28908 ko | fiat-json/src/secp256k1_dettman_64.json                           |   0m00.19s |   28124 ko || +0m00.00s ||       784 ko |   +0.00% |         +2.78%
      0m00.18s |   24828 ko | fiat-rust/src/secp256k1_dettman_64.rs                             |   0m00.19s |   24608 ko || -0m00.01s ||       220 ko |   -5.26% |         +0.89%
      0m00.18s |   24692 ko | fiat-zig/src/secp256k1_dettman_64.zig                             |   0m00.18s |   24300 ko || +0m00.00s ||       392 ko |   +0.00% |         +1.61%
      0m00.17s |   61740 ko | ExtractionOCaml/perf_word_by_word_montgomery.cmi                  |   0m00.15s |   61852 ko || +0m00.02s ||      -112 ko |  +13.33% |         -0.18%
      0m00.17s |   24668 ko | fiat-c/src/secp256k1_dettman_64.c                                 |   0m00.17s |   24356 ko || +0m00.00s ||       312 ko |   +0.00% |         +1.28%
      0m00.17s |   29916 ko | fiat-go/64/poly1305/poly1305.go                                   |   0m00.18s |   29392 ko || -0m00.00s ||       524 ko |   -5.55% |         +1.78%
      0m00.15s |   61552 ko | ExtractionOCaml/perf_unsaturated_solinas.cmi                      |   0m00.17s |   61932 ko || -0m00.02s ||      -380 ko |  -11.76% |         -0.61%
      0m00.13s |   31476 ko | fiat-json/src/poly1305_64.json                                    |   0m00.13s |   31440 ko || +0m00.00s ||        36 ko |   +0.00% |         +0.11%
      0m00.12s |   31576 ko | fiat-bedrock2/src/poly1305_64.c                                   |   0m00.12s |   31240 ko || +0m00.00s ||       336 ko |   +0.00% |         +1.07%
      0m00.12s |   26580 ko | fiat-c/src/poly1305_64.c                                          |   0m00.12s |   26524 ko || +0m00.00s ||        56 ko |   +0.00% |         +0.21%
      0m00.12s |   27276 ko | fiat-rust/src/poly1305_64.rs                                      |   0m00.12s |   26776 ko || +0m00.00s ||       500 ko |   +0.00% |         +1.86%
      0m00.12s |   26968 ko | fiat-zig/src/poly1305_64.zig                                      |   0m00.12s |   26948 ko || +0m00.00s ||        20 ko |   +0.00% |         +0.07%
      0m00.00s |    4544 ko | ExtractionJsOfOCaml/bedrock2_fiat_crypto.cmi                      |   0m00.00s |    4664 ko || +0m00.00s ||      -120 ko |   N/A    |         -2.57%
      0m00.00s |    4508 ko | ExtractionJsOfOCaml/fiat_crypto.cmi                               |   0m00.00s |    4564 ko || +0m00.00s ||       -56 ko |   N/A    |         -1.22%
      0m00.00s |    4444 ko | ExtractionJsOfOCaml/with_bedrock2_fiat_crypto.cmi                 |   0m00.00s |    4504 ko || +0m00.00s ||       -60 ko |   N/A    |         -1.33%
    
    ```
    </p>
    </details>
    JasonGross committed Jan 4, 2024
    Configuration menu
    Copy the full SHA
    fd392ca View commit details
    Browse the repository at this point in the history