1818 * Changes:
1919 * - Add call to csub in reduce128_avx to produce outputs
2020 * in [0,1,...,q-1] rather than [0,1,...,q], matching the
21- * semantics of mlk_poly_reduce().
21+ * semantics of mlk_poly_reduce(),
22+ * - Use a macro instead of a local function call.
2223 */
2324
2425#include "../../../common.h"
@@ -40,14 +41,6 @@ MLK_ASM_FN_SYMBOL(tomont_avx2)
4041 vmovdqa (%rsi ), %ymm0
4142 vmovdqa 0xa0 (%rsi ), %ymm1
4243 vmovdqa 0xc0 (%rsi ), %ymm2
43- callq Ltomont_avx2_core
44- addq $0x100 , %rdi # imm = 0x100
45- callq Ltomont_avx2_core
46- retq
47- .cfi_endproc
48-
49- Ltomont_avx2_core:
50- .cfi_startproc
5144 vmovdqa (%rdi ), %ymm3
5245 vmovdqa 0x20 (%rdi ), %ymm4
5346 vmovdqa 0x40 (%rdi ), %ymm5
@@ -96,6 +89,54 @@ Ltomont_avx2_core:
9689 vmovdqa %ymm8 , 0xa0 (%rdi )
9790 vmovdqa %ymm9 , 0xc0 (%rdi )
9891 vmovdqa %ymm10 , 0xe0 (%rdi )
92+ vmovdqa 0x100 (%rdi ), %ymm3
93+ vmovdqa 0x120 (%rdi ), %ymm4
94+ vmovdqa 0x140 (%rdi ), %ymm5
95+ vmovdqa 0x160 (%rdi ), %ymm6
96+ vmovdqa 0x180 (%rdi ), %ymm7
97+ vmovdqa 0x1a0 (%rdi ), %ymm8
98+ vmovdqa 0x1c0 (%rdi ), %ymm9
99+ vmovdqa 0x1e0 (%rdi ), %ymm10
100+ vpmullw %ymm1 , %ymm3 , %ymm11
101+ vpmulhw %ymm2 , %ymm3 , %ymm3
102+ vpmulhw %ymm0 , %ymm11 , %ymm11
103+ vpsubw %ymm11 , %ymm3 , %ymm3
104+ vpmullw %ymm1 , %ymm4 , %ymm12
105+ vpmulhw %ymm2 , %ymm4 , %ymm4
106+ vpmulhw %ymm0 , %ymm12 , %ymm12
107+ vpsubw %ymm12 , %ymm4 , %ymm4
108+ vpmullw %ymm1 , %ymm5 , %ymm13
109+ vpmulhw %ymm2 , %ymm5 , %ymm5
110+ vpmulhw %ymm0 , %ymm13 , %ymm13
111+ vpsubw %ymm13 , %ymm5 , %ymm5
112+ vpmullw %ymm1 , %ymm6 , %ymm14
113+ vpmulhw %ymm2 , %ymm6 , %ymm6
114+ vpmulhw %ymm0 , %ymm14 , %ymm14
115+ vpsubw %ymm14 , %ymm6 , %ymm6
116+ vpmullw %ymm1 , %ymm7 , %ymm15
117+ vpmulhw %ymm2 , %ymm7 , %ymm7
118+ vpmulhw %ymm0 , %ymm15 , %ymm15
119+ vpsubw %ymm15 , %ymm7 , %ymm7
120+ vpmullw %ymm1 , %ymm8 , %ymm11
121+ vpmulhw %ymm2 , %ymm8 , %ymm8
122+ vpmulhw %ymm0 , %ymm11 , %ymm11
123+ vpsubw %ymm11 , %ymm8 , %ymm8
124+ vpmullw %ymm1 , %ymm9 , %ymm12
125+ vpmulhw %ymm2 , %ymm9 , %ymm9
126+ vpmulhw %ymm0 , %ymm12 , %ymm12
127+ vpsubw %ymm12 , %ymm9 , %ymm9
128+ vpmullw %ymm1 , %ymm10 , %ymm13
129+ vpmulhw %ymm2 , %ymm10 , %ymm10
130+ vpmulhw %ymm0 , %ymm13 , %ymm13
131+ vpsubw %ymm13 , %ymm10 , %ymm10
132+ vmovdqa %ymm3 , 0x100 (%rdi )
133+ vmovdqa %ymm4 , 0x120 (%rdi )
134+ vmovdqa %ymm5 , 0x140 (%rdi )
135+ vmovdqa %ymm6 , 0x160 (%rdi )
136+ vmovdqa %ymm7 , 0x180 (%rdi )
137+ vmovdqa %ymm8 , 0x1a0 (%rdi )
138+ vmovdqa %ymm9 , 0x1c0 (%rdi )
139+ vmovdqa %ymm10 , 0x1e0 (%rdi )
99140 retq
100141 .cfi_endproc
101142
0 commit comments