aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/botan/src/lib/math/mp/mp_monty_n.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/3rdparty/botan/src/lib/math/mp/mp_monty_n.cpp')
-rw-r--r--src/libs/3rdparty/botan/src/lib/math/mp/mp_monty_n.cpp2614
1 files changed, 0 insertions, 2614 deletions
diff --git a/src/libs/3rdparty/botan/src/lib/math/mp/mp_monty_n.cpp b/src/libs/3rdparty/botan/src/lib/math/mp/mp_monty_n.cpp
deleted file mode 100644
index 0331d4a073..0000000000
--- a/src/libs/3rdparty/botan/src/lib/math/mp/mp_monty_n.cpp
+++ /dev/null
@@ -1,2614 +0,0 @@
-/*
-* This file was automatically generated by ./src/scripts/monty.py on 2018-06-11
-* All manual changes will be lost. Edit the script instead.
-*
-* Botan is released under the Simplified BSD License (see license.txt)
-*/
-
-#include <botan/internal/mp_monty.h>
-#include <botan/internal/mp_core.h>
-#include <botan/internal/mp_asmi.h>
-#include <botan/internal/ct_utils.h>
-
-namespace Botan {
-
-void bigint_monty_redc_4(word z[], const word p[4], word p_dash, word ws[])
- {
- word w2 = 0, w1 = 0, w0 = 0;
- w0 = z[0];
- ws[0] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
- word3_add(&w2, &w1, &w0, z[1]);
- ws[1] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
- word3_add(&w2, &w1, &w0, z[2]);
- ws[2] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
- word3_add(&w2, &w1, &w0, z[3]);
- ws[3] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
- word3_add(&w2, &w1, &w0, z[4]);
- ws[0] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
- word3_add(&w2, &w1, &w0, z[5]);
- ws[1] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
- word3_add(&w2, &w1, &w0, z[6]);
- ws[2] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[7]);
- ws[3] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[9]);
- ws[4] = w0;
- ws[5] = w1;
- word borrow = 0;
- ws[5] = word_sub(ws[0], p[0], &borrow);
- ws[6] = word_sub(ws[1], p[1], &borrow);
- ws[7] = word_sub(ws[2], p[2], &borrow);
- ws[8] = word_sub(ws[3], p[3], &borrow);
- ws[9] = word_sub(ws[4], 0, &borrow);
- CT::conditional_copy_mem(borrow, z, ws, ws + 5, 5);
- clear_mem(z + 4, 2*(4+1) - 4);
- }
-
-void bigint_monty_redc_6(word z[], const word p[6], word p_dash, word ws[])
- {
- word w2 = 0, w1 = 0, w0 = 0;
- w0 = z[0];
- ws[0] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
- word3_add(&w2, &w1, &w0, z[1]);
- ws[1] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
- word3_add(&w2, &w1, &w0, z[2]);
- ws[2] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
- word3_add(&w2, &w1, &w0, z[3]);
- ws[3] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
- word3_add(&w2, &w1, &w0, z[4]);
- ws[4] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
- word3_add(&w2, &w1, &w0, z[5]);
- ws[5] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
- word3_add(&w2, &w1, &w0, z[6]);
- ws[0] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
- word3_add(&w2, &w1, &w0, z[7]);
- ws[1] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
- word3_add(&w2, &w1, &w0, z[8]);
- ws[2] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
- word3_add(&w2, &w1, &w0, z[9]);
- ws[3] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
- word3_add(&w2, &w1, &w0, z[10]);
- ws[4] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[11]);
- ws[5] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[13]);
- ws[6] = w0;
- ws[7] = w1;
- word borrow = 0;
- ws[7] = word_sub(ws[0], p[0], &borrow);
- ws[8] = word_sub(ws[1], p[1], &borrow);
- ws[9] = word_sub(ws[2], p[2], &borrow);
- ws[10] = word_sub(ws[3], p[3], &borrow);
- ws[11] = word_sub(ws[4], p[4], &borrow);
- ws[12] = word_sub(ws[5], p[5], &borrow);
- ws[13] = word_sub(ws[6], 0, &borrow);
- CT::conditional_copy_mem(borrow, z, ws, ws + 7, 7);
- clear_mem(z + 6, 2*(6+1) - 6);
- }
-
-void bigint_monty_redc_8(word z[], const word p[8], word p_dash, word ws[])
- {
- word w2 = 0, w1 = 0, w0 = 0;
- w0 = z[0];
- ws[0] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
- word3_add(&w2, &w1, &w0, z[1]);
- ws[1] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
- word3_add(&w2, &w1, &w0, z[2]);
- ws[2] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
- word3_add(&w2, &w1, &w0, z[3]);
- ws[3] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
- word3_add(&w2, &w1, &w0, z[4]);
- ws[4] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
- word3_add(&w2, &w1, &w0, z[5]);
- ws[5] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
- word3_add(&w2, &w1, &w0, z[6]);
- ws[6] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
- word3_add(&w2, &w1, &w0, z[7]);
- ws[7] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
- word3_add(&w2, &w1, &w0, z[8]);
- ws[0] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
- word3_add(&w2, &w1, &w0, z[9]);
- ws[1] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
- word3_add(&w2, &w1, &w0, z[10]);
- ws[2] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
- word3_add(&w2, &w1, &w0, z[11]);
- ws[3] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
- word3_add(&w2, &w1, &w0, z[12]);
- ws[4] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
- word3_add(&w2, &w1, &w0, z[13]);
- ws[5] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
- word3_add(&w2, &w1, &w0, z[14]);
- ws[6] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[15]);
- ws[7] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[17]);
- ws[8] = w0;
- ws[9] = w1;
- word borrow = 0;
- ws[9] = word_sub(ws[0], p[0], &borrow);
- ws[10] = word_sub(ws[1], p[1], &borrow);
- ws[11] = word_sub(ws[2], p[2], &borrow);
- ws[12] = word_sub(ws[3], p[3], &borrow);
- ws[13] = word_sub(ws[4], p[4], &borrow);
- ws[14] = word_sub(ws[5], p[5], &borrow);
- ws[15] = word_sub(ws[6], p[6], &borrow);
- ws[16] = word_sub(ws[7], p[7], &borrow);
- ws[17] = word_sub(ws[8], 0, &borrow);
- CT::conditional_copy_mem(borrow, z, ws, ws + 9, 9);
- clear_mem(z + 8, 2*(8+1) - 8);
- }
-
-void bigint_monty_redc_16(word z[], const word p[16], word p_dash, word ws[])
- {
- word w2 = 0, w1 = 0, w0 = 0;
- w0 = z[0];
- ws[0] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
- word3_add(&w2, &w1, &w0, z[1]);
- ws[1] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
- word3_add(&w2, &w1, &w0, z[2]);
- ws[2] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
- word3_add(&w2, &w1, &w0, z[3]);
- ws[3] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
- word3_add(&w2, &w1, &w0, z[4]);
- ws[4] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
- word3_add(&w2, &w1, &w0, z[5]);
- ws[5] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
- word3_add(&w2, &w1, &w0, z[6]);
- ws[6] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
- word3_add(&w2, &w1, &w0, z[7]);
- ws[7] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
- word3_add(&w2, &w1, &w0, z[8]);
- ws[8] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[8], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[1]);
- word3_add(&w2, &w1, &w0, z[9]);
- ws[9] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[9], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[1]);
- word3_add(&w2, &w1, &w0, z[10]);
- ws[10] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[10], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[1]);
- word3_add(&w2, &w1, &w0, z[11]);
- ws[11] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[11], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[1]);
- word3_add(&w2, &w1, &w0, z[12]);
- ws[12] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[12], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[1]);
- word3_add(&w2, &w1, &w0, z[13]);
- ws[13] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[13], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[1]);
- word3_add(&w2, &w1, &w0, z[14]);
- ws[14] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[14], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[1]);
- word3_add(&w2, &w1, &w0, z[15]);
- ws[15] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[15], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[1], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[1]);
- word3_add(&w2, &w1, &w0, z[16]);
- ws[0] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[2], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[2]);
- word3_add(&w2, &w1, &w0, z[17]);
- ws[1] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[3], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[3]);
- word3_add(&w2, &w1, &w0, z[18]);
- ws[2] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[4], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[4]);
- word3_add(&w2, &w1, &w0, z[19]);
- ws[3] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[5], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[5]);
- word3_add(&w2, &w1, &w0, z[20]);
- ws[4] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[6], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[6]);
- word3_add(&w2, &w1, &w0, z[21]);
- ws[5] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[7], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[7]);
- word3_add(&w2, &w1, &w0, z[22]);
- ws[6] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[8], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[8]);
- word3_add(&w2, &w1, &w0, z[23]);
- ws[7] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[9], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[9]);
- word3_add(&w2, &w1, &w0, z[24]);
- ws[8] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[10], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[10]);
- word3_add(&w2, &w1, &w0, z[25]);
- ws[9] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[11], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[11]);
- word3_add(&w2, &w1, &w0, z[26]);
- ws[10] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[12], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[12]);
- word3_add(&w2, &w1, &w0, z[27]);
- ws[11] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[13], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[13]);
- word3_add(&w2, &w1, &w0, z[28]);
- ws[12] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[14], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[14]);
- word3_add(&w2, &w1, &w0, z[29]);
- ws[13] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[15], p[15]);
- word3_add(&w2, &w1, &w0, z[30]);
- ws[14] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[31]);
- ws[15] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[33]);
- ws[16] = w0;
- ws[17] = w1;
- word borrow = bigint_sub3(ws + 16 + 1, ws, 16 + 1, p, 16);
- CT::conditional_copy_mem(borrow, z, ws, ws + 17, 17);
- clear_mem(z + 16, 2*(16+1) - 16);
- }
-
-void bigint_monty_redc_24(word z[], const word p[24], word p_dash, word ws[])
- {
- word w2 = 0, w1 = 0, w0 = 0;
- w0 = z[0];
- ws[0] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
- word3_add(&w2, &w1, &w0, z[1]);
- ws[1] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
- word3_add(&w2, &w1, &w0, z[2]);
- ws[2] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
- word3_add(&w2, &w1, &w0, z[3]);
- ws[3] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
- word3_add(&w2, &w1, &w0, z[4]);
- ws[4] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
- word3_add(&w2, &w1, &w0, z[5]);
- ws[5] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
- word3_add(&w2, &w1, &w0, z[6]);
- ws[6] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
- word3_add(&w2, &w1, &w0, z[7]);
- ws[7] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
- word3_add(&w2, &w1, &w0, z[8]);
- ws[8] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[8], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[1]);
- word3_add(&w2, &w1, &w0, z[9]);
- ws[9] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[9], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[1]);
- word3_add(&w2, &w1, &w0, z[10]);
- ws[10] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[10], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[1]);
- word3_add(&w2, &w1, &w0, z[11]);
- ws[11] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[11], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[1]);
- word3_add(&w2, &w1, &w0, z[12]);
- ws[12] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[12], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[1]);
- word3_add(&w2, &w1, &w0, z[13]);
- ws[13] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[13], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[1]);
- word3_add(&w2, &w1, &w0, z[14]);
- ws[14] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[14], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[1]);
- word3_add(&w2, &w1, &w0, z[15]);
- ws[15] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[15], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[1]);
- word3_add(&w2, &w1, &w0, z[16]);
- ws[16] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[16], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[1]);
- word3_add(&w2, &w1, &w0, z[17]);
- ws[17] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[17], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[1]);
- word3_add(&w2, &w1, &w0, z[18]);
- ws[18] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[18], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[1]);
- word3_add(&w2, &w1, &w0, z[19]);
- ws[19] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[19], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[1]);
- word3_add(&w2, &w1, &w0, z[20]);
- ws[20] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[20], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[1]);
- word3_add(&w2, &w1, &w0, z[21]);
- ws[21] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[21], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[1]);
- word3_add(&w2, &w1, &w0, z[22]);
- ws[22] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[22], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[1]);
- word3_add(&w2, &w1, &w0, z[23]);
- ws[23] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[23], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[1], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[1]);
- word3_add(&w2, &w1, &w0, z[24]);
- ws[0] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[2], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[2]);
- word3_add(&w2, &w1, &w0, z[25]);
- ws[1] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[3], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[3]);
- word3_add(&w2, &w1, &w0, z[26]);
- ws[2] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[4], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[4]);
- word3_add(&w2, &w1, &w0, z[27]);
- ws[3] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[5], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[5]);
- word3_add(&w2, &w1, &w0, z[28]);
- ws[4] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[6], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[6]);
- word3_add(&w2, &w1, &w0, z[29]);
- ws[5] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[7], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[7]);
- word3_add(&w2, &w1, &w0, z[30]);
- ws[6] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[8], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[8]);
- word3_add(&w2, &w1, &w0, z[31]);
- ws[7] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[9], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[9]);
- word3_add(&w2, &w1, &w0, z[32]);
- ws[8] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[10], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[10]);
- word3_add(&w2, &w1, &w0, z[33]);
- ws[9] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[11], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[11]);
- word3_add(&w2, &w1, &w0, z[34]);
- ws[10] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[12], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[12]);
- word3_add(&w2, &w1, &w0, z[35]);
- ws[11] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[13], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[13]);
- word3_add(&w2, &w1, &w0, z[36]);
- ws[12] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[14], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[14]);
- word3_add(&w2, &w1, &w0, z[37]);
- ws[13] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[15], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[15]);
- word3_add(&w2, &w1, &w0, z[38]);
- ws[14] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[16], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[16]);
- word3_add(&w2, &w1, &w0, z[39]);
- ws[15] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[17], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[17]);
- word3_add(&w2, &w1, &w0, z[40]);
- ws[16] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[18], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[18]);
- word3_add(&w2, &w1, &w0, z[41]);
- ws[17] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[19], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[19]);
- word3_add(&w2, &w1, &w0, z[42]);
- ws[18] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[20], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[20]);
- word3_add(&w2, &w1, &w0, z[43]);
- ws[19] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[21], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[21]);
- word3_add(&w2, &w1, &w0, z[44]);
- ws[20] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[22], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[22]);
- word3_add(&w2, &w1, &w0, z[45]);
- ws[21] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[23], p[23]);
- word3_add(&w2, &w1, &w0, z[46]);
- ws[22] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[47]);
- ws[23] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[49]);
- ws[24] = w0;
- ws[25] = w1;
- word borrow = bigint_sub3(ws + 24 + 1, ws, 24 + 1, p, 24);
- CT::conditional_copy_mem(borrow, z, ws, ws + 25, 25);
- clear_mem(z + 24, 2*(24+1) - 24);
- }
-
-void bigint_monty_redc_32(word z[], const word p[32], word p_dash, word ws[])
- {
- word w2 = 0, w1 = 0, w0 = 0;
- w0 = z[0];
- ws[0] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[0], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[1]);
- word3_add(&w2, &w1, &w0, z[1]);
- ws[1] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[1], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[1]);
- word3_add(&w2, &w1, &w0, z[2]);
- ws[2] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[2], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[1]);
- word3_add(&w2, &w1, &w0, z[3]);
- ws[3] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[3], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[1]);
- word3_add(&w2, &w1, &w0, z[4]);
- ws[4] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[4], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[1]);
- word3_add(&w2, &w1, &w0, z[5]);
- ws[5] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[5], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[1]);
- word3_add(&w2, &w1, &w0, z[6]);
- ws[6] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[6], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[1]);
- word3_add(&w2, &w1, &w0, z[7]);
- ws[7] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[7], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[1]);
- word3_add(&w2, &w1, &w0, z[8]);
- ws[8] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[8], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[1]);
- word3_add(&w2, &w1, &w0, z[9]);
- ws[9] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[9], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[1]);
- word3_add(&w2, &w1, &w0, z[10]);
- ws[10] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[10], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[1]);
- word3_add(&w2, &w1, &w0, z[11]);
- ws[11] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[11], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[1]);
- word3_add(&w2, &w1, &w0, z[12]);
- ws[12] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[12], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[1]);
- word3_add(&w2, &w1, &w0, z[13]);
- ws[13] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[13], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[1]);
- word3_add(&w2, &w1, &w0, z[14]);
- ws[14] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[14], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[1]);
- word3_add(&w2, &w1, &w0, z[15]);
- ws[15] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[15], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[1]);
- word3_add(&w2, &w1, &w0, z[16]);
- ws[16] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[16], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[1]);
- word3_add(&w2, &w1, &w0, z[17]);
- ws[17] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[17], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[1]);
- word3_add(&w2, &w1, &w0, z[18]);
- ws[18] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[18], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[1]);
- word3_add(&w2, &w1, &w0, z[19]);
- ws[19] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[19], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[1]);
- word3_add(&w2, &w1, &w0, z[20]);
- ws[20] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[20], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[1]);
- word3_add(&w2, &w1, &w0, z[21]);
- ws[21] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[21], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[1]);
- word3_add(&w2, &w1, &w0, z[22]);
- ws[22] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[22], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[1]);
- word3_add(&w2, &w1, &w0, z[23]);
- ws[23] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[23], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[1]);
- word3_add(&w2, &w1, &w0, z[24]);
- ws[24] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[24], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[1]);
- word3_add(&w2, &w1, &w0, z[25]);
- ws[25] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[25], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[1]);
- word3_add(&w2, &w1, &w0, z[26]);
- ws[26] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[26], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[1]);
- word3_add(&w2, &w1, &w0, z[27]);
- ws[27] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[27], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[1]);
- word3_add(&w2, &w1, &w0, z[28]);
- ws[28] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[28], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[1]);
- word3_add(&w2, &w1, &w0, z[29]);
- ws[29] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[29], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[1]);
- word3_add(&w2, &w1, &w0, z[30]);
- ws[30] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[30], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[0], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[1], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[1]);
- word3_add(&w2, &w1, &w0, z[31]);
- ws[31] = w0 * p_dash;
- word3_muladd(&w2, &w1, &w0, ws[31], p[0]);
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[1], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[2], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[2]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[1]);
- word3_add(&w2, &w1, &w0, z[32]);
- ws[0] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[2], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[3], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[3]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[2]);
- word3_add(&w2, &w1, &w0, z[33]);
- ws[1] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[3], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[4], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[4]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[3]);
- word3_add(&w2, &w1, &w0, z[34]);
- ws[2] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[4], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[5], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[5]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[4]);
- word3_add(&w2, &w1, &w0, z[35]);
- ws[3] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[5], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[6], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[6]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[5]);
- word3_add(&w2, &w1, &w0, z[36]);
- ws[4] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[6], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[7], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[7]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[6]);
- word3_add(&w2, &w1, &w0, z[37]);
- ws[5] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[7], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[8], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[8]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[7]);
- word3_add(&w2, &w1, &w0, z[38]);
- ws[6] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[8], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[9], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[9]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[8]);
- word3_add(&w2, &w1, &w0, z[39]);
- ws[7] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[9], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[10], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[10]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[9]);
- word3_add(&w2, &w1, &w0, z[40]);
- ws[8] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[10], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[11], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[11]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[10]);
- word3_add(&w2, &w1, &w0, z[41]);
- ws[9] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[11], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[12], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[12]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[11]);
- word3_add(&w2, &w1, &w0, z[42]);
- ws[10] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[12], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[13], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[13]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[12]);
- word3_add(&w2, &w1, &w0, z[43]);
- ws[11] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[13], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[14], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[14]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[13]);
- word3_add(&w2, &w1, &w0, z[44]);
- ws[12] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[14], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[15], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[15]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[14]);
- word3_add(&w2, &w1, &w0, z[45]);
- ws[13] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[15], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[16], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[16]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[15]);
- word3_add(&w2, &w1, &w0, z[46]);
- ws[14] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[16], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[17], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[17]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[16]);
- word3_add(&w2, &w1, &w0, z[47]);
- ws[15] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[17], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[18], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[18]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[17]);
- word3_add(&w2, &w1, &w0, z[48]);
- ws[16] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[18], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[19], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[19]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[18]);
- word3_add(&w2, &w1, &w0, z[49]);
- ws[17] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[19], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[20], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[20]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[19]);
- word3_add(&w2, &w1, &w0, z[50]);
- ws[18] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[20], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[21], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[21]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[20]);
- word3_add(&w2, &w1, &w0, z[51]);
- ws[19] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[21], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[22], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[22]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[21]);
- word3_add(&w2, &w1, &w0, z[52]);
- ws[20] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[22], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[23], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[23]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[22]);
- word3_add(&w2, &w1, &w0, z[53]);
- ws[21] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[23], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[24], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[24]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[23]);
- word3_add(&w2, &w1, &w0, z[54]);
- ws[22] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[24], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[25], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[25]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[24]);
- word3_add(&w2, &w1, &w0, z[55]);
- ws[23] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[25], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[26], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[26]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[25]);
- word3_add(&w2, &w1, &w0, z[56]);
- ws[24] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[26], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[27], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[27]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[26]);
- word3_add(&w2, &w1, &w0, z[57]);
- ws[25] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[27], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[28], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[28]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[27]);
- word3_add(&w2, &w1, &w0, z[58]);
- ws[26] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[28], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[29], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[29]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[28]);
- word3_add(&w2, &w1, &w0, z[59]);
- ws[27] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[29], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[30], p[30]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[29]);
- word3_add(&w2, &w1, &w0, z[60]);
- ws[28] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[30], p[31]);
- word3_muladd(&w2, &w1, &w0, ws[31], p[30]);
- word3_add(&w2, &w1, &w0, z[61]);
- ws[29] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_muladd(&w2, &w1, &w0, ws[31], p[31]);
- word3_add(&w2, &w1, &w0, z[62]);
- ws[30] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[63]);
- ws[31] = w0;
- w0 = w1; w1 = w2; w2 = 0;
- word3_add(&w2, &w1, &w0, z[65]);
- ws[32] = w0;
- ws[33] = w1;
- word borrow = bigint_sub3(ws + 32 + 1, ws, 32 + 1, p, 32);
- CT::conditional_copy_mem(borrow, z, ws, ws + 33, 33);
- clear_mem(z + 32, 2*(32+1) - 32);
- }
-
-}