-rw-r--r-- 4478 libmceliece-20240513/crypto_kem/348864/avx/vec_mul_sp_asm.q raw
reg256 s0
reg256 s1
reg256 s2
reg256 s3
reg256 s4
reg256 s5
reg256 b0
reg256 b1
reg256 b2
reg256 b3
reg256 b4
reg256 b5
reg256 a0
reg256 a1
reg256 a2
reg256 a3
reg256 a4
reg256 a5
reg256 r0
reg256 r1
reg256 r2
reg256 r3
reg256 r4
reg256 r5
reg256 r6
reg256 r7
reg256 r8
reg256 r9
reg256 r10
reg256 r11
reg256 r12
reg256 r13
reg256 r14
reg256 r15
reg256 r16
reg256 r17
reg256 r18
reg256 r19
reg256 r20
reg256 r21
reg256 r22
reg256 r
int64 h0
int64 h1
int64 h2
int64 h3
int64 h4
int64 h5
int64 h6
int64 h7
int64 h8
int64 h9
int64 h10
int64 h11
int64 h12
int64 h13
int64 h14
int64 h15
int64 h16
int64 h17
int64 h18
int64 h19
int64 h20
int64 h21
int64 h22
stack4864 buf
int64 ptr
int64 tmp
stack64 r11_stack
stack64 r12_stack
stack64 r13_stack
stack64 r14_stack
stack64 r15_stack
stack64 rbx_stack
stack64 rbp_stack
enter vec_mul_sp_asm
r11_stack = caller_r11
r12_stack = caller_r12
r13_stack = caller_r13
r14_stack = caller_r14
r15_stack = caller_r15
rbx_stack = caller_rbx
ptr = &buf
s0 = mem256[ input_1 + 0 ]
s1 = mem256[ input_1 + 32 ]
s2 = mem256[ input_1 + 64 ]
a5[0,1,2,3] = s2[2,2,3,3]
r = mem256[ input_2 + 160 ]
b5[0,1,2,3] = r[1,3,1,3]
r10 = a5 & b5
mem256[ ptr + 320 ] = r10
r = mem256[ input_2 + 128 ]
b4[0,1,2,3] = r[1,3,1,3]
r9 = a5 & b4
r = mem256[ input_2 + 96 ]
b3[0,1,2,3] = r[1,3,1,3]
r8 = a5 & b3
r = mem256[ input_2 + 64 ]
b2[0,1,2,3] = r[1,3,1,3]
r7 = a5 & b2
r = mem256[ input_2 + 32 ]
b1[0,1,2,3] = r[1,3,1,3]
r6 = a5 & b1
r = mem256[ input_2 + 0 ]
b0[0,1,2,3] = r[1,3,1,3]
r5 = a5 & b0
a4[0,1,2,3] = s2[0,0,1,1]
r = a4 & b5
r9 ^= r
mem256[ ptr + 288 ] = r9
r = a4 & b4
r8 ^= r
r = a4 & b3
r7 ^= r
r = a4 & b2
r6 ^= r
r = a4 & b1
r5 ^= r
r4 = a4 & b0
a3[0,1,2,3] = s1[2,2,3,3]
r = a3 & b5
r8 ^= r
mem256[ ptr + 256 ] = r8
r = a3 & b4
r7 ^= r
r = a3 & b3
r6 ^= r
r = a3 & b2
r5 ^= r
r = a3 & b1
r4 ^= r
r3 = a3 & b0
a2[0,1,2,3] = s1[0,0,1,1]
r = a2 & b5
r7 ^= r
mem256[ ptr + 224 ] = r7
r = a2 & b4
r6 ^= r
r = a2 & b3
r5 ^= r
r = a2 & b2
r4 ^= r
r = a2 & b1
r3 ^= r
r2 = a2 & b0
a1[0,1,2,3] = s0[2,2,3,3]
r = a1 & b5
r6 ^= r
mem256[ ptr + 192 ] = r6
r = a1 & b4
r5 ^= r
r = a1 & b3
r4 ^= r
r = a1 & b2
r3 ^= r
r = a1 & b1
r2 ^= r
r1 = a1 & b0
a0[0,1,2,3] = s0[0,0,1,1]
r = a0 & b5
r5 ^= r
mem256[ ptr + 160 ] = r5
r = a0 & b4
r4 ^= r
r = a0 & b3
r3 ^= r
r = a0 & b2
r2 ^= r
r = a0 & b1
r1 ^= r
r0 = a0 & b0
mem256[ ptr + 128 ] = r4
mem256[ ptr + 96 ] = r3
mem256[ ptr + 64 ] = r2
mem256[ ptr + 32 ] = r1
mem256[ ptr + 0 ] = r0
h22 = mem64[ ptr + 344 ]
h13 = h22
h10 = h22
h21 = mem64[ ptr + 336 ]
h21 ^= *(uint64 *) ( ptr + 328 )
h12 = h21
h9 = h21
h20 = mem64[ ptr + 312 ]
h20 ^= *(uint64 *) ( ptr + 320 )
h11 = h20
h8 = h20
h19 = mem64[ ptr + 304 ]
h19 ^= *(uint64 *) ( ptr + 296 )
h10 ^= h19
h7 = h19
h18 = mem64[ ptr + 280 ]
h18 ^= *(uint64 *) ( ptr + 288 )
h9 ^= h18
h6 = h18
h17 = mem64[ ptr + 272 ]
h17 ^= *(uint64 *) ( ptr + 264 )
h8 ^= h17
h5 = h17
h16 = mem64[ ptr + 248 ]
h16 ^= *(uint64 *) ( ptr + 256 )
h7 ^= h16
h4 = h16
h15 = mem64[ ptr + 240 ]
h15 ^= *(uint64 *) ( ptr + 232 )
h6 ^= h15
h3 = h15
h14 = mem64[ ptr + 216 ]
h14 ^= *(uint64 *) ( ptr + 224 )
h5 ^= h14
h2 = h14
h13 ^= *(uint64 *) ( ptr + 208 )
h13 ^= *(uint64 *) ( ptr + 200 )
h4 ^= h13
h1 = h13
h12 ^= *(uint64 *) ( ptr + 184 )
h12 ^= *(uint64 *) ( ptr + 192 )
h3 ^= h12
h0 = h12
h11 ^= *(uint64 *) ( ptr + 176 )
h11 ^= *(uint64 *) ( ptr + 168 )
mem64[ input_0 + 88 ] = h11
h10 ^= *(uint64 *) ( ptr + 152 )
h10 ^= *(uint64 *) ( ptr + 160 )
mem64[ input_0 + 80 ] = h10
h9 ^= *(uint64 *) ( ptr + 144 )
h9 ^= *(uint64 *) ( ptr + 136 )
mem64[ input_0 + 72 ] = h9
h8 ^= *(uint64 *) ( ptr + 120 )
h8 ^= *(uint64 *) ( ptr + 128 )
mem64[ input_0 + 64 ] = h8
h7 ^= *(uint64 *) ( ptr + 112 )
h7 ^= *(uint64 *) ( ptr + 104 )
mem64[ input_0 + 56 ] = h7
h6 ^= *(uint64 *) ( ptr + 88 )
h6 ^= *(uint64 *) ( ptr + 96 )
mem64[ input_0 + 48 ] = h6
h5 ^= *(uint64 *) ( ptr + 80 )
h5 ^= *(uint64 *) ( ptr + 72 )
mem64[ input_0 + 40 ] = h5
h4 ^= *(uint64 *) ( ptr + 56 )
h4 ^= *(uint64 *) ( ptr + 64 )
mem64[ input_0 + 32 ] = h4
h3 ^= *(uint64 *) ( ptr + 48 )
h3 ^= *(uint64 *) ( ptr + 40 )
mem64[ input_0 + 24 ] = h3
h2 ^= *(uint64 *) ( ptr + 24 )
h2 ^= *(uint64 *) ( ptr + 32 )
mem64[ input_0 + 16 ] = h2
h1 ^= *(uint64 *) ( ptr + 16 )
h1 ^= *(uint64 *) ( ptr + 8 )
mem64[ input_0 + 8 ] = h1
h0 ^= *(uint64 *) ( ptr + 0 )
mem64[ input_0 + 0 ] = h0
caller_r11 = r11_stack
caller_r12 = r12_stack
caller_r13 = r13_stack
caller_r14 = r14_stack
caller_r15 = r15_stack
caller_rbx = rbx_stack
return